yi-keymap-vim 0.16.0 → 0.17.1
raw patch · 18 files changed
+1598/−1875 lines, 18 filesdep ~yi-coredep ~yi-languagedep ~yi-ropenew-uploader
Dependency ranges changed: yi-core, yi-language, yi-rope
Files
- src/Yi/Keymap/Vim.hs +2/−2
- src/Yi/Keymap/Vim/Digraph.hs +1328/−1312
- src/Yi/Keymap/Vim/Ex/Commands/Edit.hs +10/−6
- src/Yi/Keymap/Vim/InsertMap.hs +6/−6
- src/Yi/Keymap/Vim/VisualMap.hs +62/−29
- tests/vimtests/blockvisual/block_P_1.test +14/−0
- tests/vimtests/blockvisual/block_P_2.test +20/−0
- tests/vimtests/blockvisual/block_P_3.test +20/−0
- tests/vimtests/blockvisual/block_P_4.test +14/−0
- tests/vimtests/blockvisual/block_p_1.test +14/−0
- tests/vimtests/blockvisual/block_p_2.test +20/−0
- tests/vimtests/blockvisual/block_p_3.test +20/−0
- tests/vimtests/blockvisual/block_p_4.test +14/−0
- tests/vimtests/delete/2dw..test +0/−12
- tests/vimtests/delete/2dw2..test +0/−12
- tests/vimtests/delete/2dw3..test +0/−12
- tests/vimtests/repeat/O1.test +17/−0
- yi-keymap-vim.cabal +37/−484
src/Yi/Keymap/Vim.hs view
@@ -32,7 +32,7 @@ import Yi.Keymap (Keymap, KeymapM, KeymapSet, YiM, modelessKeymapSet, write) import Yi.Keymap.Keys (anyEvent) import Yi.Keymap.Vim.Common-import Yi.Keymap.Vim.Digraph (defDigraphs)+import Yi.Keymap.Vim.Digraph (defDigraphs, DigraphTbl) import Yi.Keymap.Vim.EventUtils (eventToEventString, parseEvents) import Yi.Keymap.Vim.Ex (ExCommand, defExCommandParsers) import Yi.Keymap.Vim.ExMap (defExMap)@@ -52,7 +52,7 @@ , vimBindings :: [VimBinding] , vimOperators :: [VimOperator] , vimExCommandParsers :: [EventString -> Maybe ExCommand]- , vimDigraphs :: [(String, Char)]+ , vimDigraphs :: DigraphTbl , vimRelayout :: Char -> Char }
src/Yi/Keymap/Vim/Digraph.hs view
@@ -1,1312 +1,1328 @@-module Yi.Keymap.Vim.Digraph- ( charFromDigraph- , defDigraphs- ) where--import Control.Applicative (Alternative ((<|>)))--charFromDigraph :: [(String, Char)] -> Char -> Char -> Maybe Char-charFromDigraph digraphTable c1 c2 =- lookup [c1, c2] digraphTable <|> lookup [c2, c1] digraphTable--defDigraphs :: [(String, Char)]-defDigraphs =- [ ("SH", '\x0001') -- START OF HEADING (SOH)- , ("SX", '\x0002') -- START OF TEXT (STX)- , ("EX", '\x0003') -- END OF TEXT (ETX)- , ("ET", '\x0004') -- END OF TRANSMISSION (EOT)- , ("EQ", '\x0005') -- ENQUIRY (ENQ)- , ("AK", '\x0006') -- ACKNOWLEDGE (ACK)- , ("BL", '\x0007') -- BELL (BEL)- , ("BS", '\x0008') -- BACKSPACE (BS)- , ("HT", '\x0009') -- CHARACTER TABULATION (HT)- , ("VT", '\x000B') -- LINE TABULATION (VT)- , ("FF", '\x000C') -- FORM FEED (FF)- , ("SO", '\x000E') -- SHIFT OUT (SO)- , ("SI", '\x000F') -- SHIFT IN (SI)- , ("DL", '\x0010') -- DATALINK ESCAPE (DLE)- , ("D1", '\x0011') -- DEVICE CONTROL ONE (DC1)- , ("D2", '\x0012') -- DEVICE CONTROL TWO (DC2)- , ("D3", '\x0013') -- DEVICE CONTROL THREE (DC3)- , ("D4", '\x0014') -- DEVICE CONTROL FOUR (DC4)- , ("NK", '\x0015') -- NEGATIVE ACKNOWLEDGE (NAK)- , ("SY", '\x0016') -- SYNCHRONOUS IDLE (SYN)- , ("EB", '\x0017') -- END OF TRANSMISSION BLOCK (ETB)- , ("CN", '\x0018') -- CANCEL (CAN)- , ("EM", '\x0019') -- END OF MEDIUM (EM)- , ("SB", '\x001A') -- SUBSTITUTE (SUB)- , ("EC", '\x001B') -- ESCAPE (ESC)- , ("FS", '\x001C') -- FILE SEPARATOR (IS4)- , ("GS", '\x001D') -- GROUP SEPARATOR (IS3)- , ("RS", '\x001E') -- RECORD SEPARATOR (IS2)- , ("US", '\x001F') -- UNIT SEPARATOR (IS1)- , ("SP", '\x0020') -- SPACE- , ("Nb", '\x0023') -- NUMBER SIGN- , ("DO", '\x0024') -- DOLLAR SIGN- , ("At", '\x0040') -- COMMERCIAL AT- , ("<(", '\x005B') -- LEFT SQUARE BRACKET- , ("//", '\x005C') -- REVERSE SOLIDUS- , (")>", '\x005D') -- RIGHT SQUARE BRACKET- , ("'>", '\x005E') -- CIRCUMFLEX ACCENT- , ("'!", '\x0060') -- GRAVE ACCENT- , ("(!", '\x007B') -- LEFT CURLY BRACKET- , ("!!", '\x007C') -- VERTICAL LINE- , ("!)", '\x007D') -- RIGHT CURLY BRACKET- , ("'?", '\x007E') -- TILDE- , ("DT", '\x007F') -- DELETE (DEL)- , ("PA", '\x0080') -- PADDING CHARACTER (PAD)- , ("HO", '\x0081') -- HIGH OCTET PRESET (HOP)- , ("BH", '\x0082') -- BREAK PERMITTED HERE (BPH)- , ("NH", '\x0083') -- NO BREAK HERE (NBH)- , ("IN", '\x0084') -- INDEX (IND)- , ("NL", '\x0085') -- NEXT LINE (NEL)- , ("SA", '\x0086') -- START OF SELECTED AREA (SSA)- , ("ES", '\x0087') -- END OF SELECTED AREA (ESA)- , ("HS", '\x0088') -- CHARACTER TABULATION SET (HTS)- , ("HJ", '\x0089') -- CHARACTER TABULATION WITH JUSTIFICATION (HTJ)- , ("VS", '\x008A') -- LINE TABULATION SET (VTS)- , ("PD", '\x008B') -- PARTIAL LINE FORWARD (PLD)- , ("PU", '\x008C') -- PARTIAL LINE BACKWARD (PLU)- , ("RI", '\x008D') -- REVERSE LINE FEED (RI)- , ("S2", '\x008E') -- SINGLE-SHIFT TWO (SS2)- , ("S3", '\x008F') -- SINGLE-SHIFT THREE (SS3)- , ("DC", '\x0090') -- DEVICE CONTROL STRING (DCS)- , ("P1", '\x0091') -- PRIVATE USE ONE (PU1)- , ("P2", '\x0092') -- PRIVATE USE TWO (PU2)- , ("TS", '\x0093') -- SET TRANSMIT STATE (STS)- , ("CC", '\x0094') -- CANCEL CHARACTER (CCH)- , ("MW", '\x0095') -- MESSAGE WAITING (MW)- , ("SG", '\x0096') -- START OF GUARDED AREA (SPA)- , ("EG", '\x0097') -- END OF GUARDED AREA (EPA)- , ("SS", '\x0098') -- START OF STRING (SOS)- , ("GC", '\x0099') -- SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)- , ("SC", '\x009A') -- SINGLE CHARACTER INTRODUCER (SCI)- , ("CI", '\x009B') -- CONTROL SEQUENCE INTRODUCER (CSI)- , ("ST", '\x009C') -- STRING TERMINATOR (ST)- , ("OC", '\x009D') -- OPERATING SYSTEM COMMAND (OSC)- , ("PM", '\x009E') -- PRIVACY MESSAGE (PM)- , ("AC", '\x009F') -- APPLICATION PROGRAM COMMAND (APC)- , ("NS", '\x00A0') -- NO-BREAK SPACE- , ("!I", '\x00A1') -- INVERTED EXCLAMATION MARK- , ("Ct", '\x00A2') -- CENT SIGN- , ("Pd", '\x00A3') -- POUND SIGN- , ("Cu", '\x00A4') -- CURRENCY SIGN- , ("Ye", '\x00A5') -- YEN SIGN- , ("BB", '\x00A6') -- BROKEN BAR- , ("SE", '\x00A7') -- SECTION SIGN- , ("':", '\x00A8') -- DIAERESIS- , ("Co", '\x00A9') -- COPYRIGHT SIGN- , ("-a", '\x00AA') -- FEMININE ORDINAL INDICATOR- , ("<<", '\x00AB') -- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK- , ("NO", '\x00AC') -- NOT SIGN- , ("--", '\x00AD') -- SOFT HYPHEN- , ("Rg", '\x00AE') -- REGISTERED SIGN- , ("'m", '\x00AF') -- MACRON- , ("DG", '\x00B0') -- DEGREE SIGN- , ("+-", '\x00B1') -- PLUS-MINUS SIGN- , ("2S", '\x00B2') -- SUPERSCRIPT TWO- , ("3S", '\x00B3') -- SUPERSCRIPT THREE- , ("''", '\x00B4') -- ACUTE ACCENT- , ("My", '\x00B5') -- MICRO SIGN- , ("PI", '\x00B6') -- PILCROW SIGN- , (".M", '\x00B7') -- MIDDLE DOT- , ("',", '\x00B8') -- CEDILLA- , ("1S", '\x00B9') -- SUPERSCRIPT ONE- , ("-o", '\x00BA') -- MASCULINE ORDINAL INDICATOR- , (">>", '\x00BB') -- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK- , ("14", '\x00BC') -- VULGAR FRACTION ONE QUARTER- , ("12", '\x00BD') -- VULGAR FRACTION ONE HALF- , ("34", '\x00BE') -- VULGAR FRACTION THREE QUARTERS- , ("?I", '\x00BF') -- INVERTED QUESTION MARK- , ("A!", '\x00C0') -- LATIN CAPITAL LETTER A WITH GRAVE- , ("A'", '\x00C1') -- LATIN CAPITAL LETTER A WITH ACUTE- , ("A>", '\x00C2') -- LATIN CAPITAL LETTER A WITH CIRCUMFLEX- , ("A?", '\x00C3') -- LATIN CAPITAL LETTER A WITH TILDE- , ("A:", '\x00C4') -- LATIN CAPITAL LETTER A WITH DIAERESIS- , ("AA", '\x00C5') -- LATIN CAPITAL LETTER A WITH RING ABOVE- , ("AE", '\x00C6') -- LATIN CAPITAL LETTER AE- , ("C,", '\x00C7') -- LATIN CAPITAL LETTER C WITH CEDILLA- , ("E!", '\x00C8') -- LATIN CAPITAL LETTER E WITH GRAVE- , ("E'", '\x00C9') -- LATIN CAPITAL LETTER E WITH ACUTE- , ("E>", '\x00CA') -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX- , ("E:", '\x00CB') -- LATIN CAPITAL LETTER E WITH DIAERESIS- , ("I!", '\x00CC') -- LATIN CAPITAL LETTER I WITH GRAVE- , ("I'", '\x00CD') -- LATIN CAPITAL LETTER I WITH ACUTE- , ("I>", '\x00CE') -- LATIN CAPITAL LETTER I WITH CIRCUMFLEX- , ("I:", '\x00CF') -- LATIN CAPITAL LETTER I WITH DIAERESIS- , ("D-", '\x00D0') -- LATIN CAPITAL LETTER ETH (Icelandic)- , ("N?", '\x00D1') -- LATIN CAPITAL LETTER N WITH TILDE- , ("O!", '\x00D2') -- LATIN CAPITAL LETTER O WITH GRAVE- , ("O'", '\x00D3') -- LATIN CAPITAL LETTER O WITH ACUTE- , ("O>", '\x00D4') -- LATIN CAPITAL LETTER O WITH CIRCUMFLEX- , ("O?", '\x00D5') -- LATIN CAPITAL LETTER O WITH TILDE- , ("O:", '\x00D6') -- LATIN CAPITAL LETTER O WITH DIAERESIS- , ("*X", '\x00D7') -- MULTIPLICATION SIGN- , ("O/", '\x00D8') -- LATIN CAPITAL LETTER O WITH STROKE- , ("U!", '\x00D9') -- LATIN CAPITAL LETTER U WITH GRAVE- , ("U'", '\x00DA') -- LATIN CAPITAL LETTER U WITH ACUTE- , ("U>", '\x00DB') -- LATIN CAPITAL LETTER U WITH CIRCUMFLEX- , ("U:", '\x00DC') -- LATIN CAPITAL LETTER U WITH DIAERESIS- , ("Y'", '\x00DD') -- LATIN CAPITAL LETTER Y WITH ACUTE- , ("TH", '\x00DE') -- LATIN CAPITAL LETTER THORN (Icelandic)- , ("ss", '\x00DF') -- LATIN SMALL LETTER SHARP S (German)- , ("a!", '\x00E0') -- LATIN SMALL LETTER A WITH GRAVE- , ("a'", '\x00E1') -- LATIN SMALL LETTER A WITH ACUTE- , ("a>", '\x00E2') -- LATIN SMALL LETTER A WITH CIRCUMFLEX- , ("a?", '\x00E3') -- LATIN SMALL LETTER A WITH TILDE- , ("a:", '\x00E4') -- LATIN SMALL LETTER A WITH DIAERESIS- , ("aa", '\x00E5') -- LATIN SMALL LETTER A WITH RING ABOVE- , ("ae", '\x00E6') -- LATIN SMALL LETTER AE- , ("c,", '\x00E7') -- LATIN SMALL LETTER C WITH CEDILLA- , ("e!", '\x00E8') -- LATIN SMALL LETTER E WITH GRAVE- , ("e'", '\x00E9') -- LATIN SMALL LETTER E WITH ACUTE- , ("e>", '\x00EA') -- LATIN SMALL LETTER E WITH CIRCUMFLEX- , ("e:", '\x00EB') -- LATIN SMALL LETTER E WITH DIAERESIS- , ("i!", '\x00EC') -- LATIN SMALL LETTER I WITH GRAVE- , ("i'", '\x00ED') -- LATIN SMALL LETTER I WITH ACUTE- , ("i>", '\x00EE') -- LATIN SMALL LETTER I WITH CIRCUMFLEX- , ("i:", '\x00EF') -- LATIN SMALL LETTER I WITH DIAERESIS- , ("d-", '\x00F0') -- LATIN SMALL LETTER ETH (Icelandic)- , ("n?", '\x00F1') -- LATIN SMALL LETTER N WITH TILDE- , ("o!", '\x00F2') -- LATIN SMALL LETTER O WITH GRAVE- , ("o'", '\x00F3') -- LATIN SMALL LETTER O WITH ACUTE- , ("o>", '\x00F4') -- LATIN SMALL LETTER O WITH CIRCUMFLEX- , ("o?", '\x00F5') -- LATIN SMALL LETTER O WITH TILDE- , ("o:", '\x00F6') -- LATIN SMALL LETTER O WITH DIAERESIS- , ("-:", '\x00F7') -- DIVISION SIGN- , ("o/", '\x00F8') -- LATIN SMALL LETTER O WITH STROKE- , ("u!", '\x00F9') -- LATIN SMALL LETTER U WITH GRAVE- , ("u'", '\x00FA') -- LATIN SMALL LETTER U WITH ACUTE- , ("u>", '\x00FB') -- LATIN SMALL LETTER U WITH CIRCUMFLEX- , ("u:", '\x00FC') -- LATIN SMALL LETTER U WITH DIAERESIS- , ("y'", '\x00FD') -- LATIN SMALL LETTER Y WITH ACUTE- , ("th", '\x00FE') -- LATIN SMALL LETTER THORN (Icelandic)- , ("y:", '\x00FF') -- LATIN SMALL LETTER Y WITH DIAERESIS- , ("A-", '\x0100') -- LATIN CAPITAL LETTER A WITH MACRON- , ("a-", '\x0101') -- LATIN SMALL LETTER A WITH MACRON- , ("A(", '\x0102') -- LATIN CAPITAL LETTER A WITH BREVE- , ("a(", '\x0103') -- LATIN SMALL LETTER A WITH BREVE- , ("A;", '\x0104') -- LATIN CAPITAL LETTER A WITH OGONEK- , ("a;", '\x0105') -- LATIN SMALL LETTER A WITH OGONEK- , ("C'", '\x0106') -- LATIN CAPITAL LETTER C WITH ACUTE- , ("c'", '\x0107') -- LATIN SMALL LETTER C WITH ACUTE- , ("C>", '\x0108') -- LATIN CAPITAL LETTER C WITH CIRCUMFLEX- , ("c>", '\x0109') -- LATIN SMALL LETTER C WITH CIRCUMFLEX- , ("C.", '\x010A') -- LATIN CAPITAL LETTER C WITH DOT ABOVE- , ("c.", '\x010B') -- LATIN SMALL LETTER C WITH DOT ABOVE- , ("C<", '\x010C') -- LATIN CAPITAL LETTER C WITH CARON- , ("c<", '\x010D') -- LATIN SMALL LETTER C WITH CARON- , ("D<", '\x010E') -- LATIN CAPITAL LETTER D WITH CARON- , ("d<", '\x010F') -- LATIN SMALL LETTER D WITH CARON- , ("D/", '\x0110') -- LATIN CAPITAL LETTER D WITH STROKE- , ("d/", '\x0111') -- LATIN SMALL LETTER D WITH STROKE- , ("E-", '\x0112') -- LATIN CAPITAL LETTER E WITH MACRON- , ("e-", '\x0113') -- LATIN SMALL LETTER E WITH MACRON- , ("E(", '\x0114') -- LATIN CAPITAL LETTER E WITH BREVE- , ("e(", '\x0115') -- LATIN SMALL LETTER E WITH BREVE- , ("E.", '\x0116') -- LATIN CAPITAL LETTER E WITH DOT ABOVE- , ("e.", '\x0117') -- LATIN SMALL LETTER E WITH DOT ABOVE- , ("E;", '\x0118') -- LATIN CAPITAL LETTER E WITH OGONEK- , ("e;", '\x0119') -- LATIN SMALL LETTER E WITH OGONEK- , ("E<", '\x011A') -- LATIN CAPITAL LETTER E WITH CARON- , ("e<", '\x011B') -- LATIN SMALL LETTER E WITH CARON- , ("G>", '\x011C') -- LATIN CAPITAL LETTER G WITH CIRCUMFLEX- , ("g>", '\x011D') -- LATIN SMALL LETTER G WITH CIRCUMFLEX- , ("G(", '\x011E') -- LATIN CAPITAL LETTER G WITH BREVE- , ("g(", '\x011F') -- LATIN SMALL LETTER G WITH BREVE- , ("G.", '\x0120') -- LATIN CAPITAL LETTER G WITH DOT ABOVE- , ("g.", '\x0121') -- LATIN SMALL LETTER G WITH DOT ABOVE- , ("G,", '\x0122') -- LATIN CAPITAL LETTER G WITH CEDILLA- , ("g,", '\x0123') -- LATIN SMALL LETTER G WITH CEDILLA- , ("H>", '\x0124') -- LATIN CAPITAL LETTER H WITH CIRCUMFLEX- , ("h>", '\x0125') -- LATIN SMALL LETTER H WITH CIRCUMFLEX- , ("H/", '\x0126') -- LATIN CAPITAL LETTER H WITH STROKE- , ("h/", '\x0127') -- LATIN SMALL LETTER H WITH STROKE- , ("I?", '\x0128') -- LATIN CAPITAL LETTER I WITH TILDE- , ("i?", '\x0129') -- LATIN SMALL LETTER I WITH TILDE- , ("I-", '\x012A') -- LATIN CAPITAL LETTER I WITH MACRON- , ("i-", '\x012B') -- LATIN SMALL LETTER I WITH MACRON- , ("I(", '\x012C') -- LATIN CAPITAL LETTER I WITH BREVE- , ("i(", '\x012D') -- LATIN SMALL LETTER I WITH BREVE- , ("I;", '\x012E') -- LATIN CAPITAL LETTER I WITH OGONEK- , ("i;", '\x012F') -- LATIN SMALL LETTER I WITH OGONEK- , ("I.", '\x0130') -- LATIN CAPITAL LETTER I WITH DOT ABOVE- , ("i.", '\x0131') -- LATIN SMALL LETTER DOTLESS I- , ("IJ", '\x0132') -- LATIN CAPITAL LIGATURE IJ- , ("ij", '\x0133') -- LATIN SMALL LIGATURE IJ- , ("J>", '\x0134') -- LATIN CAPITAL LETTER J WITH CIRCUMFLEX- , ("j>", '\x0135') -- LATIN SMALL LETTER J WITH CIRCUMFLEX- , ("K,", '\x0136') -- LATIN CAPITAL LETTER K WITH CEDILLA- , ("k,", '\x0137') -- LATIN SMALL LETTER K WITH CEDILLA- , ("kk", '\x0138') -- LATIN SMALL LETTER KRA- , ("L'", '\x0139') -- LATIN CAPITAL LETTER L WITH ACUTE- , ("l'", '\x013A') -- LATIN SMALL LETTER L WITH ACUTE- , ("L,", '\x013B') -- LATIN CAPITAL LETTER L WITH CEDILLA- , ("l,", '\x013C') -- LATIN SMALL LETTER L WITH CEDILLA- , ("L<", '\x013D') -- LATIN CAPITAL LETTER L WITH CARON- , ("l<", '\x013E') -- LATIN SMALL LETTER L WITH CARON- , ("L.", '\x013F') -- LATIN CAPITAL LETTER L WITH MIDDLE DOT- , ("l.", '\x0140') -- LATIN SMALL LETTER L WITH MIDDLE DOT- , ("L/", '\x0141') -- LATIN CAPITAL LETTER L WITH STROKE- , ("l/", '\x0142') -- LATIN SMALL LETTER L WITH STROKE- , ("N'", '\x0143') -- LATIN CAPITAL LETTER N WITH ACUTE `- , ("n'", '\x0144') -- LATIN SMALL LETTER N WITH ACUTE `- , ("N,", '\x0145') -- LATIN CAPITAL LETTER N WITH CEDILLA `- , ("n,", '\x0146') -- LATIN SMALL LETTER N WITH CEDILLA `- , ("N<", '\x0147') -- LATIN CAPITAL LETTER N WITH CARON `- , ("n<", '\x0148') -- LATIN SMALL LETTER N WITH CARON `- , ("'n", '\x0149') -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE `- , ("NG", '\x014A') -- LATIN CAPITAL LETTER ENG- , ("ng", '\x014B') -- LATIN SMALL LETTER ENG- , ("O-", '\x014C') -- LATIN CAPITAL LETTER O WITH MACRON- , ("o-", '\x014D') -- LATIN SMALL LETTER O WITH MACRON- , ("O(", '\x014E') -- LATIN CAPITAL LETTER O WITH BREVE- , ("o(", '\x014F') -- LATIN SMALL LETTER O WITH BREVE- , ("O\"", '\x0150') -- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE- , ("o\"", '\x0151') -- LATIN SMALL LETTER O WITH DOUBLE ACUTE- , ("OE", '\x0152') -- LATIN CAPITAL LIGATURE OE- , ("oe", '\x0153') -- LATIN SMALL LIGATURE OE- , ("R'", '\x0154') -- LATIN CAPITAL LETTER R WITH ACUTE- , ("r'", '\x0155') -- LATIN SMALL LETTER R WITH ACUTE- , ("R,", '\x0156') -- LATIN CAPITAL LETTER R WITH CEDILLA- , ("r,", '\x0157') -- LATIN SMALL LETTER R WITH CEDILLA- , ("R<", '\x0158') -- LATIN CAPITAL LETTER R WITH CARON- , ("r<", '\x0159') -- LATIN SMALL LETTER R WITH CARON- , ("S'", '\x015A') -- LATIN CAPITAL LETTER S WITH ACUTE- , ("s'", '\x015B') -- LATIN SMALL LETTER S WITH ACUTE- , ("S>", '\x015C') -- LATIN CAPITAL LETTER S WITH CIRCUMFLEX- , ("s>", '\x015D') -- LATIN SMALL LETTER S WITH CIRCUMFLEX- , ("S,", '\x015E') -- LATIN CAPITAL LETTER S WITH CEDILLA- , ("s,", '\x015F') -- LATIN SMALL LETTER S WITH CEDILLA- , ("S<", '\x0160') -- LATIN CAPITAL LETTER S WITH CARON- , ("s<", '\x0161') -- LATIN SMALL LETTER S WITH CARON- , ("T,", '\x0162') -- LATIN CAPITAL LETTER T WITH CEDILLA- , ("t,", '\x0163') -- LATIN SMALL LETTER T WITH CEDILLA- , ("T<", '\x0164') -- LATIN CAPITAL LETTER T WITH CARON- , ("t<", '\x0165') -- LATIN SMALL LETTER T WITH CARON- , ("T/", '\x0166') -- LATIN CAPITAL LETTER T WITH STROKE- , ("t/", '\x0167') -- LATIN SMALL LETTER T WITH STROKE- , ("U?", '\x0168') -- LATIN CAPITAL LETTER U WITH TILDE- , ("u?", '\x0169') -- LATIN SMALL LETTER U WITH TILDE- , ("U-", '\x016A') -- LATIN CAPITAL LETTER U WITH MACRON- , ("u-", '\x016B') -- LATIN SMALL LETTER U WITH MACRON- , ("U(", '\x016C') -- LATIN CAPITAL LETTER U WITH BREVE- , ("u(", '\x016D') -- LATIN SMALL LETTER U WITH BREVE- , ("U0", '\x016E') -- LATIN CAPITAL LETTER U WITH RING ABOVE- , ("u0", '\x016F') -- LATIN SMALL LETTER U WITH RING ABOVE- , ("U\"", '\x0170') -- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE- , ("u\"", '\x0171') -- LATIN SMALL LETTER U WITH DOUBLE ACUTE- , ("U;", '\x0172') -- LATIN CAPITAL LETTER U WITH OGONEK- , ("u;", '\x0173') -- LATIN SMALL LETTER U WITH OGONEK- , ("W>", '\x0174') -- LATIN CAPITAL LETTER W WITH CIRCUMFLEX- , ("w>", '\x0175') -- LATIN SMALL LETTER W WITH CIRCUMFLEX- , ("Y>", '\x0176') -- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX- , ("y>", '\x0177') -- LATIN SMALL LETTER Y WITH CIRCUMFLEX- , ("Y:", '\x0178') -- LATIN CAPITAL LETTER Y WITH DIAERESIS- , ("Z'", '\x0179') -- LATIN CAPITAL LETTER Z WITH ACUTE- , ("z'", '\x017A') -- LATIN SMALL LETTER Z WITH ACUTE- , ("Z.", '\x017B') -- LATIN CAPITAL LETTER Z WITH DOT ABOVE- , ("z.", '\x017C') -- LATIN SMALL LETTER Z WITH DOT ABOVE- , ("Z<", '\x017D') -- LATIN CAPITAL LETTER Z WITH CARON- , ("z<", '\x017E') -- LATIN SMALL LETTER Z WITH CARON- , ("O9", '\x01A0') -- LATIN CAPITAL LETTER O WITH HORN- , ("o9", '\x01A1') -- LATIN SMALL LETTER O WITH HORN- , ("OI", '\x01A2') -- LATIN CAPITAL LETTER OI- , ("oi", '\x01A3') -- LATIN SMALL LETTER OI- , ("yr", '\x01A6') -- LATIN LETTER YR- , ("U9", '\x01AF') -- LATIN CAPITAL LETTER U WITH HORN- , ("u9", '\x01B0') -- LATIN SMALL LETTER U WITH HORN- , ("Z/", '\x01B5') -- LATIN CAPITAL LETTER Z WITH STROKE- , ("z/", '\x01B6') -- LATIN SMALL LETTER Z WITH STROKE- , ("ED", '\x01B7') -- LATIN CAPITAL LETTER EZH- , ("A<", '\x01CD') -- LATIN CAPITAL LETTER A WITH CARON- , ("a<", '\x01CE') -- LATIN SMALL LETTER A WITH CARON- , ("I<", '\x01CF') -- LATIN CAPITAL LETTER I WITH CARON- , ("i<", '\x01D0') -- LATIN SMALL LETTER I WITH CARON- , ("O<", '\x01D1') -- LATIN CAPITAL LETTER O WITH CARON- , ("o<", '\x01D2') -- LATIN SMALL LETTER O WITH CARON- , ("U<", '\x01D3') -- LATIN CAPITAL LETTER U WITH CARON- , ("u<", '\x01D4') -- LATIN SMALL LETTER U WITH CARON- , ("A1", '\x01DE') -- LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON- , ("a1", '\x01DF') -- LATIN SMALL LETTER A WITH DIAERESIS AND MACRON- , ("A7", '\x01E0') -- LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON- , ("a7", '\x01E1') -- LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON- , ("A3", '\x01E2') -- LATIN CAPITAL LETTER AE WITH MACRON- , ("a3", '\x01E3') -- LATIN SMALL LETTER AE WITH MACRON- , ("G/", '\x01E4') -- LATIN CAPITAL LETTER G WITH STROKE- , ("g/", '\x01E5') -- LATIN SMALL LETTER G WITH STROKE- , ("G<", '\x01E6') -- LATIN CAPITAL LETTER G WITH CARON- , ("g<", '\x01E7') -- LATIN SMALL LETTER G WITH CARON- , ("K<", '\x01E8') -- LATIN CAPITAL LETTER K WITH CARON- , ("k<", '\x01E9') -- LATIN SMALL LETTER K WITH CARON- , ("O;", '\x01EA') -- LATIN CAPITAL LETTER O WITH OGONEK- , ("o;", '\x01EB') -- LATIN SMALL LETTER O WITH OGONEK- , ("O1", '\x01EC') -- LATIN CAPITAL LETTER O WITH OGONEK AND MACRON- , ("o1", '\x01ED') -- LATIN SMALL LETTER O WITH OGONEK AND MACRON- , ("EZ", '\x01EE') -- LATIN CAPITAL LETTER EZH WITH CARON- , ("ez", '\x01EF') -- LATIN SMALL LETTER EZH WITH CARON- , ("j<", '\x01F0') -- LATIN SMALL LETTER J WITH CARON- , ("G'", '\x01F4') -- LATIN CAPITAL LETTER G WITH ACUTE- , ("g'", '\x01F5') -- LATIN SMALL LETTER G WITH ACUTE- , (";S", '\x02BF') -- MODIFIER LETTER LEFT HALF RING- , ("'<", '\x02C7') -- CARON- , ("'(", '\x02D8') -- BREVE- , ("'.", '\x02D9') -- DOT ABOVE- , ("'0", '\x02DA') -- RING ABOVE- , ("';", '\x02DB') -- OGONEK- , ("'\"", '\x02DD') -- DOUBLE ACUTE ACCENT- , ("A%", '\x0386') -- GREEK CAPITAL LETTER ALPHA WITH TONOS- , ("E%", '\x0388') -- GREEK CAPITAL LETTER EPSILON WITH TONOS- , ("Y%", '\x0389') -- GREEK CAPITAL LETTER ETA WITH TONOS- , ("I%", '\x038A') -- GREEK CAPITAL LETTER IOTA WITH TONOS- , ("O%", '\x038C') -- GREEK CAPITAL LETTER OMICRON WITH TONOS- , ("U%", '\x038E') -- GREEK CAPITAL LETTER UPSILON WITH TONOS- , ("W%", '\x038F') -- GREEK CAPITAL LETTER OMEGA WITH TONOS- , ("i3", '\x0390') -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS- , ("A*", '\x0391') -- GREEK CAPITAL LETTER ALPHA- , ("B*", '\x0392') -- GREEK CAPITAL LETTER BETA- , ("G*", '\x0393') -- GREEK CAPITAL LETTER GAMMA- , ("D*", '\x0394') -- GREEK CAPITAL LETTER DELTA- , ("E*", '\x0395') -- GREEK CAPITAL LETTER EPSILON- , ("Z*", '\x0396') -- GREEK CAPITAL LETTER ZETA- , ("Y*", '\x0397') -- GREEK CAPITAL LETTER ETA- , ("H*", '\x0398') -- GREEK CAPITAL LETTER THETA- , ("I*", '\x0399') -- GREEK CAPITAL LETTER IOTA- , ("K*", '\x039A') -- GREEK CAPITAL LETTER KAPPA- , ("L*", '\x039B') -- GREEK CAPITAL LETTER LAMDA- , ("M*", '\x039C') -- GREEK CAPITAL LETTER MU- , ("N*", '\x039D') -- GREEK CAPITAL LETTER NU- , ("C*", '\x039E') -- GREEK CAPITAL LETTER XI- , ("O*", '\x039F') -- GREEK CAPITAL LETTER OMICRON- , ("P*", '\x03A0') -- GREEK CAPITAL LETTER PI- , ("R*", '\x03A1') -- GREEK CAPITAL LETTER RHO- , ("S*", '\x03A3') -- GREEK CAPITAL LETTER SIGMA- , ("T*", '\x03A4') -- GREEK CAPITAL LETTER TAU- , ("U*", '\x03A5') -- GREEK CAPITAL LETTER UPSILON- , ("F*", '\x03A6') -- GREEK CAPITAL LETTER PHI- , ("X*", '\x03A7') -- GREEK CAPITAL LETTER CHI- , ("Q*", '\x03A8') -- GREEK CAPITAL LETTER PSI- , ("W*", '\x03A9') -- GREEK CAPITAL LETTER OMEGA- , ("J*", '\x03AA') -- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA- , ("V*", '\x03AB') -- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA- , ("a%", '\x03AC') -- GREEK SMALL LETTER ALPHA WITH TONOS- , ("e%", '\x03AD') -- GREEK SMALL LETTER EPSILON WITH TONOS- , ("y%", '\x03AE') -- GREEK SMALL LETTER ETA WITH TONOS- , ("i%", '\x03AF') -- GREEK SMALL LETTER IOTA WITH TONOS- , ("u3", '\x03B0') -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS- , ("a*", '\x03B1') -- GREEK SMALL LETTER ALPHA- , ("b*", '\x03B2') -- GREEK SMALL LETTER BETA- , ("g*", '\x03B3') -- GREEK SMALL LETTER GAMMA- , ("d*", '\x03B4') -- GREEK SMALL LETTER DELTA- , ("e*", '\x03B5') -- GREEK SMALL LETTER EPSILON- , ("z*", '\x03B6') -- GREEK SMALL LETTER ZETA- , ("y*", '\x03B7') -- GREEK SMALL LETTER ETA- , ("h*", '\x03B8') -- GREEK SMALL LETTER THETA- , ("i*", '\x03B9') -- GREEK SMALL LETTER IOTA- , ("k*", '\x03BA') -- GREEK SMALL LETTER KAPPA- , ("l*", '\x03BB') -- GREEK SMALL LETTER LAMDA- , ("m*", '\x03BC') -- GREEK SMALL LETTER MU- , ("n*", '\x03BD') -- GREEK SMALL LETTER NU- , ("c*", '\x03BE') -- GREEK SMALL LETTER XI- , ("o*", '\x03BF') -- GREEK SMALL LETTER OMICRON- , ("p*", '\x03C0') -- GREEK SMALL LETTER PI- , ("r*", '\x03C1') -- GREEK SMALL LETTER RHO- , ("*s", '\x03C2') -- GREEK SMALL LETTER FINAL SIGMA- , ("s*", '\x03C3') -- GREEK SMALL LETTER SIGMA- , ("t*", '\x03C4') -- GREEK SMALL LETTER TAU- , ("u*", '\x03C5') -- GREEK SMALL LETTER UPSILON- , ("f*", '\x03C6') -- GREEK SMALL LETTER PHI- , ("x*", '\x03C7') -- GREEK SMALL LETTER CHI- , ("q*", '\x03C8') -- GREEK SMALL LETTER PSI- , ("w*", '\x03C9') -- GREEK SMALL LETTER OMEGA- , ("j*", '\x03CA') -- GREEK SMALL LETTER IOTA WITH DIALYTIKA- , ("v*", '\x03CB') -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA- , ("o%", '\x03CC') -- GREEK SMALL LETTER OMICRON WITH TONOS- , ("u%", '\x03CD') -- GREEK SMALL LETTER UPSILON WITH TONOS- , ("w%", '\x03CE') -- GREEK SMALL LETTER OMEGA WITH TONOS- , ("'G", '\x03D8') -- GREEK LETTER ARCHAIC KOPPA- , (",G", '\x03D9') -- GREEK SMALL LETTER ARCHAIC KOPPA- , ("T3", '\x03DA') -- GREEK LETTER STIGMA- , ("t3", '\x03DB') -- GREEK SMALL LETTER STIGMA- , ("M3", '\x03DC') -- GREEK LETTER DIGAMMA- , ("m3", '\x03DD') -- GREEK SMALL LETTER DIGAMMA- , ("K3", '\x03DE') -- GREEK LETTER KOPPA- , ("k3", '\x03DF') -- GREEK SMALL LETTER KOPPA- , ("P3", '\x03E0') -- GREEK LETTER SAMPI- , ("p3", '\x03E1') -- GREEK SMALL LETTER SAMPI- , ("'%", '\x03F4') -- GREEK CAPITAL THETA SYMBOL- , ("j3", '\x03F5') -- GREEK LUNATE EPSILON SYMBOL- , ("IO", '\x0401') -- CYRILLIC CAPITAL LETTER IO- , ("D%", '\x0402') -- CYRILLIC CAPITAL LETTER DJE- , ("G%", '\x0403') -- CYRILLIC CAPITAL LETTER GJE- , ("IE", '\x0404') -- CYRILLIC CAPITAL LETTER UKRAINIAN IE- , ("DS", '\x0405') -- CYRILLIC CAPITAL LETTER DZE- , ("II", '\x0406') -- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I- , ("YI", '\x0407') -- CYRILLIC CAPITAL LETTER YI- , ("J%", '\x0408') -- CYRILLIC CAPITAL LETTER JE- , ("LJ", '\x0409') -- CYRILLIC CAPITAL LETTER LJE- , ("NJ", '\x040A') -- CYRILLIC CAPITAL LETTER NJE- , ("Ts", '\x040B') -- CYRILLIC CAPITAL LETTER TSHE- , ("KJ", '\x040C') -- CYRILLIC CAPITAL LETTER KJE- , ("V%", '\x040E') -- CYRILLIC CAPITAL LETTER SHORT U- , ("DZ", '\x040F') -- CYRILLIC CAPITAL LETTER DZHE- , ("A=", '\x0410') -- CYRILLIC CAPITAL LETTER A- , ("B=", '\x0411') -- CYRILLIC CAPITAL LETTER BE- , ("V=", '\x0412') -- CYRILLIC CAPITAL LETTER VE- , ("G=", '\x0413') -- CYRILLIC CAPITAL LETTER GHE- , ("D=", '\x0414') -- CYRILLIC CAPITAL LETTER DE- , ("E=", '\x0415') -- CYRILLIC CAPITAL LETTER IE- , ("Z%", '\x0416') -- CYRILLIC CAPITAL LETTER ZHE- , ("Z=", '\x0417') -- CYRILLIC CAPITAL LETTER ZE- , ("I=", '\x0418') -- CYRILLIC CAPITAL LETTER I- , ("J=", '\x0419') -- CYRILLIC CAPITAL LETTER SHORT I- , ("K=", '\x041A') -- CYRILLIC CAPITAL LETTER KA- , ("L=", '\x041B') -- CYRILLIC CAPITAL LETTER EL- , ("M=", '\x041C') -- CYRILLIC CAPITAL LETTER EM- , ("N=", '\x041D') -- CYRILLIC CAPITAL LETTER EN- , ("O=", '\x041E') -- CYRILLIC CAPITAL LETTER O- , ("P=", '\x041F') -- CYRILLIC CAPITAL LETTER PE- , ("R=", '\x0420') -- CYRILLIC CAPITAL LETTER ER- , ("S=", '\x0421') -- CYRILLIC CAPITAL LETTER ES- , ("T=", '\x0422') -- CYRILLIC CAPITAL LETTER TE- , ("U=", '\x0423') -- CYRILLIC CAPITAL LETTER U- , ("F=", '\x0424') -- CYRILLIC CAPITAL LETTER EF- , ("H=", '\x0425') -- CYRILLIC CAPITAL LETTER HA- , ("C=", '\x0426') -- CYRILLIC CAPITAL LETTER TSE- , ("C%", '\x0427') -- CYRILLIC CAPITAL LETTER CHE- , ("S%", '\x0428') -- CYRILLIC CAPITAL LETTER SHA- , ("Sc", '\x0429') -- CYRILLIC CAPITAL LETTER SHCHA- , ("='", '\x042A') -- CYRILLIC CAPITAL LETTER HARD SIGN- , ("Y=", '\x042B') -- CYRILLIC CAPITAL LETTER YERU- , ("%'", '\x042C') -- CYRILLIC CAPITAL LETTER SOFT SIGN- , ("JE", '\x042D') -- CYRILLIC CAPITAL LETTER E- , ("JU", '\x042E') -- CYRILLIC CAPITAL LETTER YU- , ("JA", '\x042F') -- CYRILLIC CAPITAL LETTER YA- , ("a=", '\x0430') -- CYRILLIC SMALL LETTER A- , ("b=", '\x0431') -- CYRILLIC SMALL LETTER BE- , ("v=", '\x0432') -- CYRILLIC SMALL LETTER VE- , ("g=", '\x0433') -- CYRILLIC SMALL LETTER GHE- , ("d=", '\x0434') -- CYRILLIC SMALL LETTER DE- , ("e=", '\x0435') -- CYRILLIC SMALL LETTER IE- , ("z%", '\x0436') -- CYRILLIC SMALL LETTER ZHE- , ("z=", '\x0437') -- CYRILLIC SMALL LETTER ZE- , ("i=", '\x0438') -- CYRILLIC SMALL LETTER I- , ("j=", '\x0439') -- CYRILLIC SMALL LETTER SHORT I- , ("k=", '\x043A') -- CYRILLIC SMALL LETTER KA- , ("l=", '\x043B') -- CYRILLIC SMALL LETTER EL- , ("m=", '\x043C') -- CYRILLIC SMALL LETTER EM- , ("n=", '\x043D') -- CYRILLIC SMALL LETTER EN- , ("o=", '\x043E') -- CYRILLIC SMALL LETTER O- , ("p=", '\x043F') -- CYRILLIC SMALL LETTER PE- , ("r=", '\x0440') -- CYRILLIC SMALL LETTER ER- , ("s=", '\x0441') -- CYRILLIC SMALL LETTER ES- , ("t=", '\x0442') -- CYRILLIC SMALL LETTER TE- , ("u=", '\x0443') -- CYRILLIC SMALL LETTER U- , ("f=", '\x0444') -- CYRILLIC SMALL LETTER EF- , ("h=", '\x0445') -- CYRILLIC SMALL LETTER HA- , ("c=", '\x0446') -- CYRILLIC SMALL LETTER TSE- , ("c%", '\x0447') -- CYRILLIC SMALL LETTER CHE- , ("s%", '\x0448') -- CYRILLIC SMALL LETTER SHA- , ("sc", '\x0449') -- CYRILLIC SMALL LETTER SHCHA- , ("='", '\x044A') -- CYRILLIC SMALL LETTER HARD SIGN- , ("y=", '\x044B') -- CYRILLIC SMALL LETTER YERU- , ("%'", '\x044C') -- CYRILLIC SMALL LETTER SOFT SIGN- , ("je", '\x044D') -- CYRILLIC SMALL LETTER E- , ("ju", '\x044E') -- CYRILLIC SMALL LETTER YU- , ("ja", '\x044F') -- CYRILLIC SMALL LETTER YA- , ("io", '\x0451') -- CYRILLIC SMALL LETTER IO- , ("d%", '\x0452') -- CYRILLIC SMALL LETTER DJE- , ("g%", '\x0453') -- CYRILLIC SMALL LETTER GJE- , ("ie", '\x0454') -- CYRILLIC SMALL LETTER UKRAINIAN IE- , ("ds", '\x0455') -- CYRILLIC SMALL LETTER DZE- , ("ii", '\x0456') -- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I- , ("yi", '\x0457') -- CYRILLIC SMALL LETTER YI- , ("j%", '\x0458') -- CYRILLIC SMALL LETTER JE- , ("lj", '\x0459') -- CYRILLIC SMALL LETTER LJE- , ("nj", '\x045A') -- CYRILLIC SMALL LETTER NJE- , ("ts", '\x045B') -- CYRILLIC SMALL LETTER TSHE- , ("kj", '\x045C') -- CYRILLIC SMALL LETTER KJE- , ("v%", '\x045E') -- CYRILLIC SMALL LETTER SHORT U- , ("dz", '\x045F') -- CYRILLIC SMALL LETTER DZHE- , ("Y3", '\x0462') -- CYRILLIC CAPITAL LETTER YAT- , ("y3", '\x0463') -- CYRILLIC SMALL LETTER YAT- , ("O3", '\x046A') -- CYRILLIC CAPITAL LETTER BIG YUS- , ("o3", '\x046B') -- CYRILLIC SMALL LETTER BIG YUS- , ("F3", '\x0472') -- CYRILLIC CAPITAL LETTER FITA- , ("f3", '\x0473') -- CYRILLIC SMALL LETTER FITA- , ("V3", '\x0474') -- CYRILLIC CAPITAL LETTER IZHITSA- , ("v3", '\x0475') -- CYRILLIC SMALL LETTER IZHITSA- , ("C3", '\x0480') -- CYRILLIC CAPITAL LETTER KOPPA- , ("c3", '\x0481') -- CYRILLIC SMALL LETTER KOPPA- , ("G3", '\x0490') -- CYRILLIC CAPITAL LETTER GHE WITH UPTURN- , ("g3", '\x0491') -- CYRILLIC SMALL LETTER GHE WITH UPTURN- , ("A+", '\x05D0') -- HEBREW LETTER ALEF- , ("B+", '\x05D1') -- HEBREW LETTER BET- , ("G+", '\x05D2') -- HEBREW LETTER GIMEL- , ("D+", '\x05D3') -- HEBREW LETTER DALET- , ("H+", '\x05D4') -- HEBREW LETTER HE- , ("W+", '\x05D5') -- HEBREW LETTER VAV- , ("Z+", '\x05D6') -- HEBREW LETTER ZAYIN- , ("X+", '\x05D7') -- HEBREW LETTER HET- , ("Tj", '\x05D8') -- HEBREW LETTER TET- , ("J+", '\x05D9') -- HEBREW LETTER YOD- , ("K%", '\x05DA') -- HEBREW LETTER FINAL KAF- , ("K+", '\x05DB') -- HEBREW LETTER KAF- , ("L+", '\x05DC') -- HEBREW LETTER LAMED- , ("M%", '\x05DD') -- HEBREW LETTER FINAL MEM- , ("M+", '\x05DE') -- HEBREW LETTER MEM- , ("N%", '\x05DF') -- HEBREW LETTER FINAL NUN `- , ("N+", '\x05E0') -- HEBREW LETTER NUN `- , ("S+", '\x05E1') -- HEBREW LETTER SAMEKH- , ("E+", '\x05E2') -- HEBREW LETTER AYIN- , ("P%", '\x05E3') -- HEBREW LETTER FINAL PE- , ("P+", '\x05E4') -- HEBREW LETTER PE- , ("Zj", '\x05E5') -- HEBREW LETTER FINAL TSADI- , ("ZJ", '\x05E6') -- HEBREW LETTER TSADI- , ("Q+", '\x05E7') -- HEBREW LETTER QOF- , ("R+", '\x05E8') -- HEBREW LETTER RESH- , ("Sh", '\x05E9') -- HEBREW LETTER SHIN- , ("T+", '\x05EA') -- HEBREW LETTER TAV- , (",+", '\x060C') -- ARABIC COMMA- , (";+", '\x061B') -- ARABIC SEMICOLON- , ("?+", '\x061F') -- ARABIC QUESTION MARK- , ("H'", '\x0621') -- ARABIC LETTER HAMZA- , ("aM", '\x0622') -- ARABIC LETTER ALEF WITH MADDA ABOVE- , ("aH", '\x0623') -- ARABIC LETTER ALEF WITH HAMZA ABOVE- , ("wH", '\x0624') -- ARABIC LETTER WAW WITH HAMZA ABOVE- , ("ah", '\x0625') -- ARABIC LETTER ALEF WITH HAMZA BELOW- , ("yH", '\x0626') -- ARABIC LETTER YEH WITH HAMZA ABOVE- , ("a+", '\x0627') -- ARABIC LETTER ALEF- , ("b+", '\x0628') -- ARABIC LETTER BEH- , ("tm", '\x0629') -- ARABIC LETTER TEH MARBUTA- , ("t+", '\x062A') -- ARABIC LETTER TEH- , ("tk", '\x062B') -- ARABIC LETTER THEH- , ("g+", '\x062C') -- ARABIC LETTER JEEM- , ("hk", '\x062D') -- ARABIC LETTER HAH- , ("x+", '\x062E') -- ARABIC LETTER KHAH- , ("d+", '\x062F') -- ARABIC LETTER DAL- , ("dk", '\x0630') -- ARABIC LETTER THAL- , ("r+", '\x0631') -- ARABIC LETTER REH- , ("z+", '\x0632') -- ARABIC LETTER ZAIN- , ("s+", '\x0633') -- ARABIC LETTER SEEN- , ("sn", '\x0634') -- ARABIC LETTER SHEEN- , ("c+", '\x0635') -- ARABIC LETTER SAD- , ("dd", '\x0636') -- ARABIC LETTER DAD- , ("tj", '\x0637') -- ARABIC LETTER TAH- , ("zH", '\x0638') -- ARABIC LETTER ZAH- , ("e+", '\x0639') -- ARABIC LETTER AIN- , ("i+", '\x063A') -- ARABIC LETTER GHAIN- , ("++", '\x0640') -- ARABIC TATWEEL- , ("f+", '\x0641') -- ARABIC LETTER FEH- , ("q+", '\x0642') -- ARABIC LETTER QAF- , ("k+", '\x0643') -- ARABIC LETTER KAF- , ("l+", '\x0644') -- ARABIC LETTER LAM- , ("m+", '\x0645') -- ARABIC LETTER MEEM- , ("n+", '\x0646') -- ARABIC LETTER NOON- , ("h+", '\x0647') -- ARABIC LETTER HEH- , ("w+", '\x0648') -- ARABIC LETTER WAW- , ("j+", '\x0649') -- ARABIC LETTER ALEF MAKSURA- , ("y+", '\x064A') -- ARABIC LETTER YEH- , (":+", '\x064B') -- ARABIC FATHATAN- , ("\"+", '\x064C') -- ARABIC DAMMATAN- , ("=+", '\x064D') -- ARABIC KASRATAN- , ("/+", '\x064E') -- ARABIC FATHA- , ("'+", '\x064F') -- ARABIC DAMMA- , ("1+", '\x0650') -- ARABIC KASRA- , ("3+", '\x0651') -- ARABIC SHADDA- , ("0+", '\x0652') -- ARABIC SUKUN- , ("aS", '\x0670') -- ARABIC LETTER SUPERSCRIPT ALEF- , ("p+", '\x067E') -- ARABIC LETTER PEH- , ("v+", '\x06A4') -- ARABIC LETTER VEH- , ("gf", '\x06AF') -- ARABIC LETTER GAF- , ("0a", '\x06F0') -- EXTENDED ARABIC-INDIC DIGIT ZERO- , ("1a", '\x06F1') -- EXTENDED ARABIC-INDIC DIGIT ONE- , ("2a", '\x06F2') -- EXTENDED ARABIC-INDIC DIGIT TWO- , ("3a", '\x06F3') -- EXTENDED ARABIC-INDIC DIGIT THREE- , ("4a", '\x06F4') -- EXTENDED ARABIC-INDIC DIGIT FOUR- , ("5a", '\x06F5') -- EXTENDED ARABIC-INDIC DIGIT FIVE- , ("6a", '\x06F6') -- EXTENDED ARABIC-INDIC DIGIT SIX- , ("7a", '\x06F7') -- EXTENDED ARABIC-INDIC DIGIT SEVEN- , ("8a", '\x06F8') -- EXTENDED ARABIC-INDIC DIGIT EIGHT- , ("9a", '\x06F9') -- EXTENDED ARABIC-INDIC DIGIT NINE- , ("B.", '\x1E02') -- LATIN CAPITAL LETTER B WITH DOT ABOVE- , ("b.", '\x1E03') -- LATIN SMALL LETTER B WITH DOT ABOVE- , ("B_", '\x1E06') -- LATIN CAPITAL LETTER B WITH LINE BELOW- , ("b_", '\x1E07') -- LATIN SMALL LETTER B WITH LINE BELOW- , ("D.", '\x1E0A') -- LATIN CAPITAL LETTER D WITH DOT ABOVE- , ("d.", '\x1E0B') -- LATIN SMALL LETTER D WITH DOT ABOVE- , ("D_", '\x1E0E') -- LATIN CAPITAL LETTER D WITH LINE BELOW- , ("d_", '\x1E0F') -- LATIN SMALL LETTER D WITH LINE BELOW- , ("D,", '\x1E10') -- LATIN CAPITAL LETTER D WITH CEDILLA- , ("d,", '\x1E11') -- LATIN SMALL LETTER D WITH CEDILLA- , ("F.", '\x1E1E') -- LATIN CAPITAL LETTER F WITH DOT ABOVE- , ("f.", '\x1E1F') -- LATIN SMALL LETTER F WITH DOT ABOVE- , ("G-", '\x1E20') -- LATIN CAPITAL LETTER G WITH MACRON- , ("g-", '\x1E21') -- LATIN SMALL LETTER G WITH MACRON- , ("H.", '\x1E22') -- LATIN CAPITAL LETTER H WITH DOT ABOVE- , ("h.", '\x1E23') -- LATIN SMALL LETTER H WITH DOT ABOVE- , ("H:", '\x1E26') -- LATIN CAPITAL LETTER H WITH DIAERESIS- , ("h:", '\x1E27') -- LATIN SMALL LETTER H WITH DIAERESIS- , ("H,", '\x1E28') -- LATIN CAPITAL LETTER H WITH CEDILLA- , ("h,", '\x1E29') -- LATIN SMALL LETTER H WITH CEDILLA- , ("K'", '\x1E30') -- LATIN CAPITAL LETTER K WITH ACUTE- , ("k'", '\x1E31') -- LATIN SMALL LETTER K WITH ACUTE- , ("K_", '\x1E34') -- LATIN CAPITAL LETTER K WITH LINE BELOW- , ("k_", '\x1E35') -- LATIN SMALL LETTER K WITH LINE BELOW- , ("L_", '\x1E3A') -- LATIN CAPITAL LETTER L WITH LINE BELOW- , ("l_", '\x1E3B') -- LATIN SMALL LETTER L WITH LINE BELOW- , ("M'", '\x1E3E') -- LATIN CAPITAL LETTER M WITH ACUTE- , ("m'", '\x1E3F') -- LATIN SMALL LETTER M WITH ACUTE- , ("M.", '\x1E40') -- LATIN CAPITAL LETTER M WITH DOT ABOVE- , ("m.", '\x1E41') -- LATIN SMALL LETTER M WITH DOT ABOVE- , ("N.", '\x1E44') -- LATIN CAPITAL LETTER N WITH DOT ABOVE `- , ("n.", '\x1E45') -- LATIN SMALL LETTER N WITH DOT ABOVE `- , ("N_", '\x1E48') -- LATIN CAPITAL LETTER N WITH LINE BELOW `- , ("n_", '\x1E49') -- LATIN SMALL LETTER N WITH LINE BELOW `- , ("P'", '\x1E54') -- LATIN CAPITAL LETTER P WITH ACUTE- , ("p'", '\x1E55') -- LATIN SMALL LETTER P WITH ACUTE- , ("P.", '\x1E56') -- LATIN CAPITAL LETTER P WITH DOT ABOVE- , ("p.", '\x1E57') -- LATIN SMALL LETTER P WITH DOT ABOVE- , ("R.", '\x1E58') -- LATIN CAPITAL LETTER R WITH DOT ABOVE- , ("r.", '\x1E59') -- LATIN SMALL LETTER R WITH DOT ABOVE- , ("R_", '\x1E5E') -- LATIN CAPITAL LETTER R WITH LINE BELOW- , ("r_", '\x1E5F') -- LATIN SMALL LETTER R WITH LINE BELOW- , ("S.", '\x1E60') -- LATIN CAPITAL LETTER S WITH DOT ABOVE- , ("s.", '\x1E61') -- LATIN SMALL LETTER S WITH DOT ABOVE- , ("T.", '\x1E6A') -- LATIN CAPITAL LETTER T WITH DOT ABOVE- , ("t.", '\x1E6B') -- LATIN SMALL LETTER T WITH DOT ABOVE- , ("T_", '\x1E6E') -- LATIN CAPITAL LETTER T WITH LINE BELOW- , ("t_", '\x1E6F') -- LATIN SMALL LETTER T WITH LINE BELOW- , ("V?", '\x1E7C') -- LATIN CAPITAL LETTER V WITH TILDE- , ("v?", '\x1E7D') -- LATIN SMALL LETTER V WITH TILDE- , ("W!", '\x1E80') -- LATIN CAPITAL LETTER W WITH GRAVE- , ("w!", '\x1E81') -- LATIN SMALL LETTER W WITH GRAVE- , ("W'", '\x1E82') -- LATIN CAPITAL LETTER W WITH ACUTE- , ("w'", '\x1E83') -- LATIN SMALL LETTER W WITH ACUTE- , ("W:", '\x1E84') -- LATIN CAPITAL LETTER W WITH DIAERESIS- , ("w:", '\x1E85') -- LATIN SMALL LETTER W WITH DIAERESIS- , ("W.", '\x1E86') -- LATIN CAPITAL LETTER W WITH DOT ABOVE- , ("w.", '\x1E87') -- LATIN SMALL LETTER W WITH DOT ABOVE- , ("X.", '\x1E8A') -- LATIN CAPITAL LETTER X WITH DOT ABOVE- , ("x.", '\x1E8B') -- LATIN SMALL LETTER X WITH DOT ABOVE- , ("X:", '\x1E8C') -- LATIN CAPITAL LETTER X WITH DIAERESIS- , ("x:", '\x1E8D') -- LATIN SMALL LETTER X WITH DIAERESIS- , ("Y.", '\x1E8E') -- LATIN CAPITAL LETTER Y WITH DOT ABOVE- , ("y.", '\x1E8F') -- LATIN SMALL LETTER Y WITH DOT ABOVE- , ("Z>", '\x1E90') -- LATIN CAPITAL LETTER Z WITH CIRCUMFLEX- , ("z>", '\x1E91') -- LATIN SMALL LETTER Z WITH CIRCUMFLEX- , ("Z_", '\x1E94') -- LATIN CAPITAL LETTER Z WITH LINE BELOW- , ("z_", '\x1E95') -- LATIN SMALL LETTER Z WITH LINE BELOW- , ("h_", '\x1E96') -- LATIN SMALL LETTER H WITH LINE BELOW- , ("t:", '\x1E97') -- LATIN SMALL LETTER T WITH DIAERESIS- , ("w0", '\x1E98') -- LATIN SMALL LETTER W WITH RING ABOVE- , ("y0", '\x1E99') -- LATIN SMALL LETTER Y WITH RING ABOVE- , ("A2", '\x1EA2') -- LATIN CAPITAL LETTER A WITH HOOK ABOVE- , ("a2", '\x1EA3') -- LATIN SMALL LETTER A WITH HOOK ABOVE- , ("E2", '\x1EBA') -- LATIN CAPITAL LETTER E WITH HOOK ABOVE- , ("e2", '\x1EBB') -- LATIN SMALL LETTER E WITH HOOK ABOVE- , ("E?", '\x1EBC') -- LATIN CAPITAL LETTER E WITH TILDE- , ("e?", '\x1EBD') -- LATIN SMALL LETTER E WITH TILDE- , ("I2", '\x1EC8') -- LATIN CAPITAL LETTER I WITH HOOK ABOVE- , ("i2", '\x1EC9') -- LATIN SMALL LETTER I WITH HOOK ABOVE- , ("O2", '\x1ECE') -- LATIN CAPITAL LETTER O WITH HOOK ABOVE- , ("o2", '\x1ECF') -- LATIN SMALL LETTER O WITH HOOK ABOVE- , ("U2", '\x1EE6') -- LATIN CAPITAL LETTER U WITH HOOK ABOVE- , ("u2", '\x1EE7') -- LATIN SMALL LETTER U WITH HOOK ABOVE- , ("Y!", '\x1EF2') -- LATIN CAPITAL LETTER Y WITH GRAVE- , ("y!", '\x1EF3') -- LATIN SMALL LETTER Y WITH GRAVE- , ("Y2", '\x1EF6') -- LATIN CAPITAL LETTER Y WITH HOOK ABOVE- , ("y2", '\x1EF7') -- LATIN SMALL LETTER Y WITH HOOK ABOVE- , ("Y?", '\x1EF8') -- LATIN CAPITAL LETTER Y WITH TILDE- , ("y?", '\x1EF9') -- LATIN SMALL LETTER Y WITH TILDE- , (";'", '\x1F00') -- GREEK SMALL LETTER ALPHA WITH PSILI- , (",'", '\x1F01') -- GREEK SMALL LETTER ALPHA WITH DASIA- , (";!", '\x1F02') -- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA- , (",!", '\x1F03') -- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA- , ("?;", '\x1F04') -- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA- , ("?,", '\x1F05') -- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA- , ("!:", '\x1F06') -- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI- , ("?:", '\x1F07') -- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI- , ("1N", '\x2002') -- EN SPACE- , ("1M", '\x2003') -- EM SPACE- , ("3M", '\x2004') -- THREE-PER-EM SPACE- , ("4M", '\x2005') -- FOUR-PER-EM SPACE- , ("6M", '\x2006') -- SIX-PER-EM SPACE- , ("1T", '\x2009') -- THIN SPACE- , ("1H", '\x200A') -- HAIR SPACE- , ("-1", '\x2010') -- HYPHEN- , ("-N", '\x2013') -- EN DASH `- , ("-M", '\x2014') -- EM DASH- , ("-3", '\x2015') -- HORIZONTAL BAR- , ("!2", '\x2016') -- DOUBLE VERTICAL LINE- , ("=2", '\x2017') -- DOUBLE LOW LINE- , ("'6", '\x2018') -- LEFT SINGLE QUOTATION MARK- , ("'9", '\x2019') -- RIGHT SINGLE QUOTATION MARK- , (".9", '\x201A') -- SINGLE LOW-9 QUOTATION MARK- , ("9'", '\x201B') -- SINGLE HIGH-REVERSED-9 QUOTATION MARK- , ("\"6", '\x201C') -- LEFT DOUBLE QUOTATION MARK- , ("\"9", '\x201D') -- RIGHT DOUBLE QUOTATION MARK- , (":9", '\x201E') -- DOUBLE LOW-9 QUOTATION MARK- , ("9\"", '\x201F') -- DOUBLE HIGH-REVERSED-9 QUOTATION MARK- , ("/-", '\x2020') -- DAGGER- , ("/=", '\x2021') -- DOUBLE DAGGER- , ("..", '\x2025') -- TWO DOT LEADER- , ("%0", '\x2030') -- PER MILLE SIGN- , ("1'", '\x2032') -- PRIME- , ("2'", '\x2033') -- DOUBLE PRIME- , ("3'", '\x2034') -- TRIPLE PRIME- , ("1\"", '\x2035') -- REVERSED PRIME- , ("2\"", '\x2036') -- REVERSED DOUBLE PRIME- , ("3\"", '\x2037') -- REVERSED TRIPLE PRIME- , ("Ca", '\x2038') -- CARET- , ("<1", '\x2039') -- SINGLE LEFT-POINTING ANGLE QUOTATION MARK- , (">1", '\x203A') -- SINGLE RIGHT-POINTING ANGLE QUOTATION MARK- , (":X", '\x203B') -- REFERENCE MARK- , ("'-", '\x203E') -- OVERLINE- , ("/f", '\x2044') -- FRACTION SLASH- , ("0S", '\x2070') -- SUPERSCRIPT ZERO- , ("4S", '\x2074') -- SUPERSCRIPT FOUR- , ("5S", '\x2075') -- SUPERSCRIPT FIVE- , ("6S", '\x2076') -- SUPERSCRIPT SIX- , ("7S", '\x2077') -- SUPERSCRIPT SEVEN- , ("8S", '\x2078') -- SUPERSCRIPT EIGHT- , ("9S", '\x2079') -- SUPERSCRIPT NINE- , ("+S", '\x207A') -- SUPERSCRIPT PLUS SIGN- , ("-S", '\x207B') -- SUPERSCRIPT MINUS- , ("=S", '\x207C') -- SUPERSCRIPT EQUALS SIGN- , ("(S", '\x207D') -- SUPERSCRIPT LEFT PARENTHESIS- , (")S", '\x207E') -- SUPERSCRIPT RIGHT PARENTHESIS- , ("nS", '\x207F') -- SUPERSCRIPT LATIN SMALL LETTER N `- , ("0s", '\x2080') -- SUBSCRIPT ZERO- , ("1s", '\x2081') -- SUBSCRIPT ONE- , ("2s", '\x2082') -- SUBSCRIPT TWO- , ("3s", '\x2083') -- SUBSCRIPT THREE- , ("4s", '\x2084') -- SUBSCRIPT FOUR- , ("5s", '\x2085') -- SUBSCRIPT FIVE- , ("6s", '\x2086') -- SUBSCRIPT SIX- , ("7s", '\x2087') -- SUBSCRIPT SEVEN- , ("8s", '\x2088') -- SUBSCRIPT EIGHT- , ("9s", '\x2089') -- SUBSCRIPT NINE- , ("+s", '\x208A') -- SUBSCRIPT PLUS SIGN- , ("-s", '\x208B') -- SUBSCRIPT MINUS- , ("=s", '\x208C') -- SUBSCRIPT EQUALS SIGN- , ("(s", '\x208D') -- SUBSCRIPT LEFT PARENTHESIS- , (")s", '\x208E') -- SUBSCRIPT RIGHT PARENTHESIS- , ("Li", '\x20A4') -- LIRA SIGN- , ("Pt", '\x20A7') -- PESETA SIGN- , ("W=", '\x20A9') -- WON SIGN- , ("Eu", '\x20AC') -- EURO SIGN- , ("oC", '\x2103') -- DEGREE CELSIUS- , ("co", '\x2105') -- CARE OF- , ("oF", '\x2109') -- DEGREE FAHRENHEIT- , ("N0", '\x2116') -- NUMERO SIGN- , ("PO", '\x2117') -- SOUND RECORDING COPYRIGHT- , ("Rx", '\x211E') -- PRESCRIPTION TAKE- , ("SM", '\x2120') -- SERVICE MARK- , ("TM", '\x2122') -- TRADE MARK SIGN- , ("Om", '\x2126') -- OHM SIGN- , ("AO", '\x212B') -- ANGSTROM SIGN- , ("13", '\x2153') -- VULGAR FRACTION ONE THIRD- , ("23", '\x2154') -- VULGAR FRACTION TWO THIRDS- , ("15", '\x2155') -- VULGAR FRACTION ONE FIFTH- , ("25", '\x2156') -- VULGAR FRACTION TWO FIFTHS- , ("35", '\x2157') -- VULGAR FRACTION THREE FIFTHS- , ("45", '\x2158') -- VULGAR FRACTION FOUR FIFTHS- , ("16", '\x2159') -- VULGAR FRACTION ONE SIXTH- , ("56", '\x215A') -- VULGAR FRACTION FIVE SIXTHS- , ("18", '\x215B') -- VULGAR FRACTION ONE EIGHTH- , ("38", '\x215C') -- VULGAR FRACTION THREE EIGHTHS- , ("58", '\x215D') -- VULGAR FRACTION FIVE EIGHTHS- , ("78", '\x215E') -- VULGAR FRACTION SEVEN EIGHTHS- , ("1R", '\x2160') -- ROMAN NUMERAL ONE- , ("2R", '\x2161') -- ROMAN NUMERAL TWO- , ("3R", '\x2162') -- ROMAN NUMERAL THREE- , ("4R", '\x2163') -- ROMAN NUMERAL FOUR- , ("5R", '\x2164') -- ROMAN NUMERAL FIVE- , ("6R", '\x2165') -- ROMAN NUMERAL SIX- , ("7R", '\x2166') -- ROMAN NUMERAL SEVEN- , ("8R", '\x2167') -- ROMAN NUMERAL EIGHT- , ("9R", '\x2168') -- ROMAN NUMERAL NINE- , ("aR", '\x2169') -- ROMAN NUMERAL TEN- , ("bR", '\x216A') -- ROMAN NUMERAL ELEVEN- , ("cR", '\x216B') -- ROMAN NUMERAL TWELVE- , ("1r", '\x2170') -- SMALL ROMAN NUMERAL ONE- , ("2r", '\x2171') -- SMALL ROMAN NUMERAL TWO- , ("3r", '\x2172') -- SMALL ROMAN NUMERAL THREE- , ("4r", '\x2173') -- SMALL ROMAN NUMERAL FOUR- , ("5r", '\x2174') -- SMALL ROMAN NUMERAL FIVE- , ("6r", '\x2175') -- SMALL ROMAN NUMERAL SIX- , ("7r", '\x2176') -- SMALL ROMAN NUMERAL SEVEN- , ("8r", '\x2177') -- SMALL ROMAN NUMERAL EIGHT- , ("9r", '\x2178') -- SMALL ROMAN NUMERAL NINE- , ("ar", '\x2179') -- SMALL ROMAN NUMERAL TEN- , ("br", '\x217A') -- SMALL ROMAN NUMERAL ELEVEN- , ("cr", '\x217B') -- SMALL ROMAN NUMERAL TWELVE- , ("<-", '\x2190') -- LEFTWARDS ARROW- , ("-!", '\x2191') -- UPWARDS ARROW- , ("->", '\x2192') -- RIGHTWARDS ARROW- , ("-v", '\x2193') -- DOWNWARDS ARROW- , ("<>", '\x2194') -- LEFT RIGHT ARROW- , ("UD", '\x2195') -- UP DOWN ARROW- , ("<=", '\x21D0') -- LEFTWARDS DOUBLE ARROW- , ("=>", '\x21D2') -- RIGHTWARDS DOUBLE ARROW- , ("==", '\x21D4') -- LEFT RIGHT DOUBLE ARROW- , ("FA", '\x2200') -- FOR ALL- , ("dP", '\x2202') -- PARTIAL DIFFERENTIAL- , ("TE", '\x2203') -- THERE EXISTS- , ("/0", '\x2205') -- EMPTY SET- , ("DE", '\x2206') -- INCREMENT- , ("NB", '\x2207') -- NABLA- , ("(-", '\x2208') -- ELEMENT OF- , ("-)", '\x220B') -- CONTAINS AS MEMBER- , ("*P", '\x220F') -- N-ARY PRODUCT `- , ("+Z", '\x2211') -- N-ARY SUMMATION `- , ("-2", '\x2212') -- MINUS SIGN- , ("-+", '\x2213') -- MINUS-OR-PLUS SIGN- , ("*-", '\x2217') -- ASTERISK OPERATOR- , ("Ob", '\x2218') -- RING OPERATOR- , ("Sb", '\x2219') -- BULLET OPERATOR- , ("RT", '\x221A') -- SQUARE ROOT- , ("0(", '\x221D') -- PROPORTIONAL TO- , ("00", '\x221E') -- INFINITY- , ("-L", '\x221F') -- RIGHT ANGLE- , ("-V", '\x2220') -- ANGLE- , ("PP", '\x2225') -- PARALLEL TO- , ("AN", '\x2227') -- LOGICAL AND- , ("OR", '\x2228') -- LOGICAL OR- , ("(U", '\x2229') -- INTERSECTION- , (")U", '\x222A') -- UNION- , ("In", '\x222B') -- INTEGRAL- , ("DI", '\x222C') -- DOUBLE INTEGRAL- , ("Io", '\x222E') -- CONTOUR INTEGRAL- , (".:", '\x2234') -- THEREFORE- , (":.", '\x2235') -- BECAUSE- , (":R", '\x2236') -- RATIO- , ("::", '\x2237') -- PROPORTION- , ("?1", '\x223C') -- TILDE OPERATOR- , ("CG", '\x223E') -- INVERTED LAZY S- , ("?-", '\x2243') -- ASYMPTOTICALLY EQUAL TO- , ("?=", '\x2245') -- APPROXIMATELY EQUAL TO- , ("?2", '\x2248') -- ALMOST EQUAL TO- , ("=?", '\x224C') -- ALL EQUAL TO- , ("HI", '\x2253') -- IMAGE OF OR APPROXIMATELY EQUAL TO- , ("!=", '\x2260') -- NOT EQUAL TO- , ("=3", '\x2261') -- IDENTICAL TO- , ("=<", '\x2264') -- LESS-THAN OR EQUAL TO- , (">=", '\x2265') -- GREATER-THAN OR EQUAL TO- , ("<*", '\x226A') -- MUCH LESS-THAN- , ("*>", '\x226B') -- MUCH GREATER-THAN- , ("!<", '\x226E') -- NOT LESS-THAN- , ("!>", '\x226F') -- NOT GREATER-THAN- , ("(C", '\x2282') -- SUBSET OF- , (")C", '\x2283') -- SUPERSET OF- , ("(_", '\x2286') -- SUBSET OF OR EQUAL TO- , (")_", '\x2287') -- SUPERSET OF OR EQUAL TO- , ("0.", '\x2299') -- CIRCLED DOT OPERATOR- , ("02", '\x229A') -- CIRCLED RING OPERATOR- , ("-T", '\x22A5') -- UP TACK- , (".P", '\x22C5') -- DOT OPERATOR- , (":3", '\x22EE') -- VERTICAL ELLIPSIS- , (".3", '\x22EF') -- MIDLINE HORIZONTAL ELLIPSIS- , ("Eh", '\x2302') -- HOUSE- , ("<7", '\x2308') -- LEFT CEILING- , (">7", '\x2309') -- RIGHT CEILING- , ("7<", '\x230A') -- LEFT FLOOR- , ("7>", '\x230B') -- RIGHT FLOOR- , ("NI", '\x2310') -- REVERSED NOT SIGN- , ("(A", '\x2312') -- ARC- , ("TR", '\x2315') -- TELEPHONE RECORDER- , ("Iu", '\x2320') -- TOP HALF INTEGRAL- , ("Il", '\x2321') -- BOTTOM HALF INTEGRAL- , ("</", '\x2329') -- LEFT-POINTING ANGLE BRACKET- , ("/>", '\x232A') -- RIGHT-POINTING ANGLE BRACKET- , ("Vs", '\x2423') -- OPEN BOX- , ("1h", '\x2440') -- OCR HOOK- , ("3h", '\x2441') -- OCR CHAIR- , ("2h", '\x2442') -- OCR FORK- , ("4h", '\x2443') -- OCR INVERTED FORK- , ("1j", '\x2446') -- OCR BRANCH BANK IDENTIFICATION- , ("2j", '\x2447') -- OCR AMOUNT OF CHECK- , ("3j", '\x2448') -- OCR DASH- , ("4j", '\x2449') -- OCR CUSTOMER ACCOUNT NUMBER- , ("1.", '\x2488') -- DIGIT ONE FULL STOP- , ("2.", '\x2489') -- DIGIT TWO FULL STOP- , ("3.", '\x248A') -- DIGIT THREE FULL STOP- , ("4.", '\x248B') -- DIGIT FOUR FULL STOP- , ("5.", '\x248C') -- DIGIT FIVE FULL STOP- , ("6.", '\x248D') -- DIGIT SIX FULL STOP- , ("7.", '\x248E') -- DIGIT SEVEN FULL STOP- , ("8.", '\x248F') -- DIGIT EIGHT FULL STOP- , ("9.", '\x2490') -- DIGIT NINE FULL STOP- , ("hh", '\x2500') -- BOX DRAWINGS LIGHT HORIZONTAL- , ("HH", '\x2501') -- BOX DRAWINGS HEAVY HORIZONTAL- , ("vv", '\x2502') -- BOX DRAWINGS LIGHT VERTICAL- , ("VV", '\x2503') -- BOX DRAWINGS HEAVY VERTICAL- , ("3-", '\x2504') -- BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL- , ("3_", '\x2505') -- BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL- , ("3!", '\x2506') -- BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL- , ("3/", '\x2507') -- BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL- , ("4-", '\x2508') -- BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL- , ("4_", '\x2509') -- BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL- , ("4!", '\x250A') -- BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL- , ("4/", '\x250B') -- BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL- , ("dr", '\x250C') -- BOX DRAWINGS LIGHT DOWN AND RIGHT- , ("dR", '\x250D') -- BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY- , ("Dr", '\x250E') -- BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT- , ("DR", '\x250F') -- BOX DRAWINGS HEAVY DOWN AND RIGHT- , ("dl", '\x2510') -- BOX DRAWINGS LIGHT DOWN AND LEFT- , ("dL", '\x2511') -- BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY- , ("Dl", '\x2512') -- BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT- , ("LD", '\x2513') -- BOX DRAWINGS HEAVY DOWN AND LEFT- , ("ur", '\x2514') -- BOX DRAWINGS LIGHT UP AND RIGHT- , ("uR", '\x2515') -- BOX DRAWINGS UP LIGHT AND RIGHT HEAVY- , ("Ur", '\x2516') -- BOX DRAWINGS UP HEAVY AND RIGHT LIGHT- , ("UR", '\x2517') -- BOX DRAWINGS HEAVY UP AND RIGHT- , ("ul", '\x2518') -- BOX VOICED SOUND MARKDRAWINGS LIGHT UP AND LEFT- , ("uL", '\x2519') -- BOX DRAWINGS UP LIGHT AND LEFT HEAVY- , ("Ul", '\x251A') -- BOX DRAWINGS UP HEAVY AND LEFT LIGHT- , ("UL", '\x251B') -- BOX DRAWINGS HEAVY UP AND LEFT- , ("vr", '\x251C') -- BOX DRAWINGS LIGHT VERTICAL AND RIGHT- , ("vR", '\x251D') -- BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY- , ("Vr", '\x2520') -- BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT- , ("VR", '\x2523') -- BOX DRAWINGS HEAVY VERTICAL AND RIGHT- , ("vl", '\x2524') -- BOX DRAWINGS LIGHT VERTICAL AND LEFT- , ("vL", '\x2525') -- BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY- , ("Vl", '\x2528') -- BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT- , ("VL", '\x252B') -- BOX DRAWINGS HEAVY VERTICAL AND LEFT- , ("dh", '\x252C') -- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL- , ("dH", '\x252F') -- BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY- , ("Dh", '\x2530') -- BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT- , ("DH", '\x2533') -- BOX DRAWINGS HEAVY DOWN AND HORIZONTAL- , ("uh", '\x2534') -- BOX DRAWINGS LIGHT UP AND HORIZONTAL- , ("uH", '\x2537') -- BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY- , ("Uh", '\x2538') -- BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT- , ("UH", '\x253B') -- BOX DRAWINGS HEAVY UP AND HORIZONTAL- , ("vh", '\x253C') -- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL- , ("vH", '\x253F') -- BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY- , ("Vh", '\x2542') -- BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT- , ("VH", '\x254B') -- BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL- , ("FD", '\x2571') -- BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT- , ("BD", '\x2572') -- BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT- , ("TB", '\x2580') -- UPPER HALF BLOCK- , ("LB", '\x2584') -- LOWER HALF BLOCK- , ("FB", '\x2588') -- FULL BLOCK- , ("lB", '\x258C') -- LEFT HALF BLOCK- , ("RB", '\x2590') -- RIGHT HALF BLOCK- , (".S", '\x2591') -- LIGHT SHADE- , (":S", '\x2592') -- MEDIUM SHADE- , ("?S", '\x2593') -- DARK SHADE- , ("fS", '\x25A0') -- BLACK SQUARE- , ("OS", '\x25A1') -- WHITE SQUARE- , ("RO", '\x25A2') -- WHITE SQUARE WITH ROUNDED CORNERS- , ("Rr", '\x25A3') -- WHITE SQUARE CONTAINING BLACK SMALL SQUARE- , ("RF", '\x25A4') -- SQUARE WITH HORIZONTAL FILL- , ("RY", '\x25A5') -- SQUARE WITH VERTICAL FILL- , ("RH", '\x25A6') -- SQUARE WITH ORTHOGONAL CROSSHATCH FILL- , ("RZ", '\x25A7') -- SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL- , ("RK", '\x25A8') -- SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL- , ("RX", '\x25A9') -- SQUARE WITH DIAGONAL CROSSHATCH FILL- , ("sB", '\x25AA') -- BLACK SMALL SQUARE- , ("SR", '\x25AC') -- BLACK RECTANGLE- , ("Or", '\x25AD') -- WHITE RECTANGLE- , ("UT", '\x25B2') -- BLACK UP-POINTING TRIANGLE- , ("uT", '\x25B3') -- WHITE UP-POINTING TRIANGLE- , ("PR", '\x25B6') -- BLACK RIGHT-POINTING TRIANGLE- , ("Tr", '\x25B7') -- WHITE RIGHT-POINTING TRIANGLE- , ("Dt", '\x25BC') -- BLACK DOWN-POINTING TRIANGLE- , ("dT", '\x25BD') -- WHITE DOWN-POINTING TRIANGLE- , ("PL", '\x25C0') -- BLACK LEFT-POINTING TRIANGLE- , ("Tl", '\x25C1') -- WHITE LEFT-POINTING TRIANGLE- , ("Db", '\x25C6') -- BLACK DIAMOND- , ("Dw", '\x25C7') -- WHITE DIAMOND- , ("LZ", '\x25CA') -- LOZENGE- , ("0m", '\x25CB') -- WHITE CIRCLE- , ("0o", '\x25CE') -- BULLSEYE- , ("0M", '\x25CF') -- BLACK CIRCLE- , ("0L", '\x25D0') -- CIRCLE WITH LEFT HALF BLACK- , ("0R", '\x25D1') -- CIRCLE WITH RIGHT HALF BLACK- , ("Sn", '\x25D8') -- INVERSE BULLET- , ("Ic", '\x25D9') -- INVERSE WHITE CIRCLE- , ("Fd", '\x25E2') -- BLACK LOWER RIGHT TRIANGLE- , ("Bd", '\x25E3') -- BLACK LOWER LEFT TRIANGLE- , ("*2", '\x2605') -- BLACK STAR- , ("*1", '\x2606') -- WHITE STAR- , ("<H", '\x261C') -- WHITE LEFT POINTING INDEX- , (">H", '\x261E') -- WHITE RIGHT POINTING INDEX- , ("0u", '\x263A') -- WHITE SMILING FACE- , ("0U", '\x263B') -- BLACK SMILING FACE- , ("SU", '\x263C') -- WHITE SUN WITH RAYS- , ("Fm", '\x2640') -- FEMALE SIGN- , ("Ml", '\x2642') -- MALE SIGN- , ("cS", '\x2660') -- BLACK SPADE SUIT- , ("cH", '\x2661') -- WHITE HEART SUIT- , ("cD", '\x2662') -- WHITE DIAMOND SUIT- , ("cC", '\x2663') -- BLACK CLUB SUIT- , ("Md", '\x2669') -- QUARTER NOTE `- , ("M8", '\x266A') -- EIGHTH NOTE `- , ("M2", '\x266B') -- BEAMED EIGHTH NOTES- , ("Mb", '\x266D') -- MUSIC FLAT SIGN- , ("Mx", '\x266E') -- MUSIC NATURAL SIGN- , ("MX", '\x266F') -- MUSIC SHARP SIGN- , ("OK", '\x2713') -- CHECK MARK- , ("XX", '\x2717') -- BALLOT X- , ("-X", '\x2720') -- MALTESE CROSS- , ("IS", '\x3000') -- IDEOGRAPHIC SPACE- , (",_", '\x3001') -- IDEOGRAPHIC COMMA- , ("._", '\x3002') -- IDEOGRAPHIC FULL STOP- , ("+\"", '\x3003') -- DITTO MARK- , ("+_", '\x3004') -- JAPANESE INDUSTRIAL STANDARD SYMBOL- , ("*_", '\x3005') -- IDEOGRAPHIC ITERATION MARK- , (";_", '\x3006') -- IDEOGRAPHIC CLOSING MARK- , ("0_", '\x3007') -- IDEOGRAPHIC NUMBER ZERO- , ("<+", '\x300A') -- LEFT DOUBLE ANGLE BRACKET- , (">+", '\x300B') -- RIGHT DOUBLE ANGLE BRACKET- , ("<'", '\x300C') -- LEFT CORNER BRACKET- , (">'", '\x300D') -- RIGHT CORNER BRACKET- , ("<\"", '\x300E') -- LEFT WHITE CORNER BRACKET- , (">\"", '\x300F') -- RIGHT WHITE CORNER BRACKET- , ("(\"", '\x3010') -- LEFT BLACK LENTICULAR BRACKET- , (")\"", '\x3011') -- RIGHT BLACK LENTICULAR BRACKET- , ("=T", '\x3012') -- POSTAL MARK- , ("=_", '\x3013') -- GETA MARK- , ("('", '\x3014') -- LEFT TORTOISE SHELL BRACKET- , (")'", '\x3015') -- RIGHT TORTOISE SHELL BRACKET- , ("(I", '\x3016') -- LEFT WHITE LENTICULAR BRACKET- , (")I", '\x3017') -- RIGHT WHITE LENTICULAR BRACKET- , ("-?", '\x301C') -- WAVE DASH- , ("A5", '\x3041') -- HIRAGANA LETTER SMALL A- , ("a5", '\x3042') -- HIRAGANA LETTER A- , ("I5", '\x3043') -- HIRAGANA LETTER SMALL I- , ("i5", '\x3044') -- HIRAGANA LETTER I- , ("U5", '\x3045') -- HIRAGANA LETTER SMALL U- , ("u5", '\x3046') -- HIRAGANA LETTER U- , ("E5", '\x3047') -- HIRAGANA LETTER SMALL E- , ("e5", '\x3048') -- HIRAGANA LETTER E- , ("O5", '\x3049') -- HIRAGANA LETTER SMALL O- , ("o5", '\x304A') -- HIRAGANA LETTER O- , ("ka", '\x304B') -- HIRAGANA LETTER KA- , ("ga", '\x304C') -- HIRAGANA LETTER GA- , ("ki", '\x304D') -- HIRAGANA LETTER KI- , ("gi", '\x304E') -- HIRAGANA LETTER GI- , ("ku", '\x304F') -- HIRAGANA LETTER KU- , ("gu", '\x3050') -- HIRAGANA LETTER GU- , ("ke", '\x3051') -- HIRAGANA LETTER KE- , ("ge", '\x3052') -- HIRAGANA LETTER GE- , ("ko", '\x3053') -- HIRAGANA LETTER KO- , ("go", '\x3054') -- HIRAGANA LETTER GO- , ("sa", '\x3055') -- HIRAGANA LETTER SA- , ("za", '\x3056') -- HIRAGANA LETTER ZA- , ("si", '\x3057') -- HIRAGANA LETTER SI- , ("zi", '\x3058') -- HIRAGANA LETTER ZI- , ("su", '\x3059') -- HIRAGANA LETTER SU- , ("zu", '\x305A') -- HIRAGANA LETTER ZU- , ("se", '\x305B') -- HIRAGANA LETTER SE- , ("ze", '\x305C') -- HIRAGANA LETTER ZE- , ("so", '\x305D') -- HIRAGANA LETTER SO- , ("zo", '\x305E') -- HIRAGANA LETTER ZO- , ("ta", '\x305F') -- HIRAGANA LETTER TA- , ("da", '\x3060') -- HIRAGANA LETTER DA- , ("ti", '\x3061') -- HIRAGANA LETTER TI- , ("di", '\x3062') -- HIRAGANA LETTER DI- , ("tU", '\x3063') -- HIRAGANA LETTER SMALL TU- , ("tu", '\x3064') -- HIRAGANA LETTER TU- , ("du", '\x3065') -- HIRAGANA LETTER DU- , ("te", '\x3066') -- HIRAGANA LETTER TE- , ("de", '\x3067') -- HIRAGANA LETTER DE- , ("to", '\x3068') -- HIRAGANA LETTER TO- , ("do", '\x3069') -- HIRAGANA LETTER DO- , ("na", '\x306A') -- HIRAGANA LETTER NA- , ("ni", '\x306B') -- HIRAGANA LETTER NI- , ("nu", '\x306C') -- HIRAGANA LETTER NU- , ("ne", '\x306D') -- HIRAGANA LETTER NE- , ("no", '\x306E') -- HIRAGANA LETTER NO- , ("ha", '\x306F') -- HIRAGANA LETTER HA- , ("ba", '\x3070') -- HIRAGANA LETTER BA- , ("pa", '\x3071') -- HIRAGANA LETTER PA- , ("hi", '\x3072') -- HIRAGANA LETTER HI- , ("bi", '\x3073') -- HIRAGANA LETTER BI- , ("pi", '\x3074') -- HIRAGANA LETTER PI- , ("hu", '\x3075') -- HIRAGANA LETTER HU- , ("bu", '\x3076') -- HIRAGANA LETTER BU- , ("pu", '\x3077') -- HIRAGANA LETTER PU- , ("he", '\x3078') -- HIRAGANA LETTER HE- , ("be", '\x3079') -- HIRAGANA LETTER BE- , ("pe", '\x307A') -- HIRAGANA LETTER PE- , ("ho", '\x307B') -- HIRAGANA LETTER HO- , ("bo", '\x307C') -- HIRAGANA LETTER BO- , ("po", '\x307D') -- HIRAGANA LETTER PO- , ("ma", '\x307E') -- HIRAGANA LETTER MA- , ("mi", '\x307F') -- HIRAGANA LETTER MI- , ("mu", '\x3080') -- HIRAGANA LETTER MU- , ("me", '\x3081') -- HIRAGANA LETTER ME- , ("mo", '\x3082') -- HIRAGANA LETTER MO- , ("yA", '\x3083') -- HIRAGANA LETTER SMALL YA- , ("ya", '\x3084') -- HIRAGANA LETTER YA- , ("yU", '\x3085') -- HIRAGANA LETTER SMALL YU- , ("yu", '\x3086') -- HIRAGANA LETTER YU- , ("yO", '\x3087') -- HIRAGANA LETTER SMALL YO- , ("yo", '\x3088') -- HIRAGANA LETTER YO- , ("ra", '\x3089') -- HIRAGANA LETTER RA- , ("ri", '\x308A') -- HIRAGANA LETTER RI- , ("ru", '\x308B') -- HIRAGANA LETTER RU- , ("re", '\x308C') -- HIRAGANA LETTER RE- , ("ro", '\x308D') -- HIRAGANA LETTER RO- , ("wA", '\x308E') -- HIRAGANA LETTER SMALL WA- , ("wa", '\x308F') -- HIRAGANA LETTER WA- , ("wi", '\x3090') -- HIRAGANA LETTER WI- , ("we", '\x3091') -- HIRAGANA LETTER WE- , ("wo", '\x3092') -- HIRAGANA LETTER WO- , ("n5", '\x3093') -- HIRAGANA LETTER N `- , ("vu", '\x3094') -- HIRAGANA LETTER VU- , ("\"5", '\x309B') -- KATAKANA-HIRAGANA VOICED SOUND MARK- , ("05", '\x309C') -- KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK- , ("*5", '\x309D') -- HIRAGANA ITERATION MARK- , ("+5", '\x309E') -- HIRAGANA VOICED ITERATION MARK- , ("a6", '\x30A1') -- KATAKANA LETTER SMALL A- , ("A6", '\x30A2') -- KATAKANA LETTER A- , ("i6", '\x30A3') -- KATAKANA LETTER SMALL I- , ("I6", '\x30A4') -- KATAKANA LETTER I- , ("u6", '\x30A5') -- KATAKANA LETTER SMALL U- , ("U6", '\x30A6') -- KATAKANA LETTER U- , ("e6", '\x30A7') -- KATAKANA LETTER SMALL E- , ("E6", '\x30A8') -- KATAKANA LETTER E- , ("o6", '\x30A9') -- KATAKANA LETTER SMALL O- , ("O6", '\x30AA') -- KATAKANA LETTER O- , ("Ka", '\x30AB') -- KATAKANA LETTER KA- , ("Ga", '\x30AC') -- KATAKANA LETTER GA- , ("Ki", '\x30AD') -- KATAKANA LETTER KI- , ("Gi", '\x30AE') -- KATAKANA LETTER GI- , ("Ku", '\x30AF') -- KATAKANA LETTER KU- , ("Gu", '\x30B0') -- KATAKANA LETTER GU- , ("Ke", '\x30B1') -- KATAKANA LETTER KE- , ("Ge", '\x30B2') -- KATAKANA LETTER GE- , ("Ko", '\x30B3') -- KATAKANA LETTER KO- , ("Go", '\x30B4') -- KATAKANA LETTER GO- , ("Sa", '\x30B5') -- KATAKANA LETTER SA- , ("Za", '\x30B6') -- KATAKANA LETTER ZA- , ("Si", '\x30B7') -- KATAKANA LETTER SI- , ("Zi", '\x30B8') -- KATAKANA LETTER ZI- , ("Su", '\x30B9') -- KATAKANA LETTER SU- , ("Zu", '\x30BA') -- KATAKANA LETTER ZU- , ("Se", '\x30BB') -- KATAKANA LETTER SE- , ("Ze", '\x30BC') -- KATAKANA LETTER ZE- , ("So", '\x30BD') -- KATAKANA LETTER SO- , ("Zo", '\x30BE') -- KATAKANA LETTER ZO- , ("Ta", '\x30BF') -- KATAKANA LETTER TA- , ("Da", '\x30C0') -- KATAKANA LETTER DA- , ("Ti", '\x30C1') -- KATAKANA LETTER TI- , ("Di", '\x30C2') -- KATAKANA LETTER DI- , ("TU", '\x30C3') -- KATAKANA LETTER SMALL TU- , ("Tu", '\x30C4') -- KATAKANA LETTER TU- , ("Du", '\x30C5') -- KATAKANA LETTER DU- , ("Te", '\x30C6') -- KATAKANA LETTER TE- , ("De", '\x30C7') -- KATAKANA LETTER DE- , ("To", '\x30C8') -- KATAKANA LETTER TO- , ("Do", '\x30C9') -- KATAKANA LETTER DO- , ("Na", '\x30CA') -- KATAKANA LETTER NA- , ("Ni", '\x30CB') -- KATAKANA LETTER NI- , ("Nu", '\x30CC') -- KATAKANA LETTER NU- , ("Ne", '\x30CD') -- KATAKANA LETTER NE- , ("No", '\x30CE') -- KATAKANA LETTER NO- , ("Ha", '\x30CF') -- KATAKANA LETTER HA- , ("Ba", '\x30D0') -- KATAKANA LETTER BA- , ("Pa", '\x30D1') -- KATAKANA LETTER PA- , ("Hi", '\x30D2') -- KATAKANA LETTER HI- , ("Bi", '\x30D3') -- KATAKANA LETTER BI- , ("Pi", '\x30D4') -- KATAKANA LETTER PI- , ("Hu", '\x30D5') -- KATAKANA LETTER HU- , ("Bu", '\x30D6') -- KATAKANA LETTER BU- , ("Pu", '\x30D7') -- KATAKANA LETTER PU- , ("He", '\x30D8') -- KATAKANA LETTER HE- , ("Be", '\x30D9') -- KATAKANA LETTER BE- , ("Pe", '\x30DA') -- KATAKANA LETTER PE- , ("Ho", '\x30DB') -- KATAKANA LETTER HO- , ("Bo", '\x30DC') -- KATAKANA LETTER BO- , ("Po", '\x30DD') -- KATAKANA LETTER PO- , ("Ma", '\x30DE') -- KATAKANA LETTER MA- , ("Mi", '\x30DF') -- KATAKANA LETTER MI- , ("Mu", '\x30E0') -- KATAKANA LETTER MU- , ("Me", '\x30E1') -- KATAKANA LETTER ME- , ("Mo", '\x30E2') -- KATAKANA LETTER MO- , ("YA", '\x30E3') -- KATAKANA LETTER SMALL YA- , ("Ya", '\x30E4') -- KATAKANA LETTER YA- , ("YU", '\x30E5') -- KATAKANA LETTER SMALL YU- , ("Yu", '\x30E6') -- KATAKANA LETTER YU- , ("YO", '\x30E7') -- KATAKANA LETTER SMALL YO- , ("Yo", '\x30E8') -- KATAKANA LETTER YO- , ("Ra", '\x30E9') -- KATAKANA LETTER RA- , ("Ri", '\x30EA') -- KATAKANA LETTER RI- , ("Ru", '\x30EB') -- KATAKANA LETTER RU- , ("Re", '\x30EC') -- KATAKANA LETTER RE- , ("Ro", '\x30ED') -- KATAKANA LETTER RO- , ("WA", '\x30EE') -- KATAKANA LETTER SMALL WA- , ("Wa", '\x30EF') -- KATAKANA LETTER WA- , ("Wi", '\x30F0') -- KATAKANA LETTER WI- , ("We", '\x30F1') -- KATAKANA LETTER WE- , ("Wo", '\x30F2') -- KATAKANA LETTER WO- , ("N6", '\x30F3') -- KATAKANA LETTER N `- , ("Vu", '\x30F4') -- KATAKANA LETTER VU- , ("KA", '\x30F5') -- KATAKANA LETTER SMALL KA- , ("KE", '\x30F6') -- KATAKANA LETTER SMALL KE- , ("Va", '\x30F7') -- KATAKANA LETTER VA- , ("Vi", '\x30F8') -- KATAKANA LETTER VI- , ("Ve", '\x30F9') -- KATAKANA LETTER VE- , ("Vo", '\x30FA') -- KATAKANA LETTER VO- , (".6", '\x30FB') -- KATAKANA MIDDLE DOT- , ("-6", '\x30FC') -- KATAKANA-HIRAGANA PROLONGED SOUND MARK- , ("*6", '\x30FD') -- KATAKANA ITERATION MARK- , ("+6", '\x30FE') -- KATAKANA VOICED ITERATION MARK- , ("b4", '\x3105') -- BOPOMOFO LETTER B- , ("p4", '\x3106') -- BOPOMOFO LETTER P- , ("m4", '\x3107') -- BOPOMOFO LETTER M- , ("f4", '\x3108') -- BOPOMOFO LETTER F- , ("d4", '\x3109') -- BOPOMOFO LETTER D- , ("t4", '\x310A') -- BOPOMOFO LETTER T- , ("n4", '\x310B') -- BOPOMOFO LETTER N `- , ("l4", '\x310C') -- BOPOMOFO LETTER L- , ("g4", '\x310D') -- BOPOMOFO LETTER G- , ("k4", '\x310E') -- BOPOMOFO LETTER K- , ("h4", '\x310F') -- BOPOMOFO LETTER H- , ("j4", '\x3110') -- BOPOMOFO LETTER J- , ("q4", '\x3111') -- BOPOMOFO LETTER Q- , ("x4", '\x3112') -- BOPOMOFO LETTER X- , ("zh", '\x3113') -- BOPOMOFO LETTER ZH- , ("ch", '\x3114') -- BOPOMOFO LETTER CH- , ("sh", '\x3115') -- BOPOMOFO LETTER SH- , ("r4", '\x3116') -- BOPOMOFO LETTER R- , ("z4", '\x3117') -- BOPOMOFO LETTER Z- , ("c4", '\x3118') -- BOPOMOFO LETTER C- , ("s4", '\x3119') -- BOPOMOFO LETTER S- , ("a4", '\x311A') -- BOPOMOFO LETTER A- , ("o4", '\x311B') -- BOPOMOFO LETTER O- , ("e4", '\x311C') -- BOPOMOFO LETTER E- , ("ai", '\x311E') -- BOPOMOFO LETTER AI- , ("ei", '\x311F') -- BOPOMOFO LETTER EI- , ("au", '\x3120') -- BOPOMOFO LETTER AU- , ("ou", '\x3121') -- BOPOMOFO LETTER OU- , ("an", '\x3122') -- BOPOMOFO LETTER AN- , ("en", '\x3123') -- BOPOMOFO LETTER EN- , ("aN", '\x3124') -- BOPOMOFO LETTER ANG- , ("eN", '\x3125') -- BOPOMOFO LETTER ENG- , ("er", '\x3126') -- BOPOMOFO LETTER ER- , ("i4", '\x3127') -- BOPOMOFO LETTER I- , ("u4", '\x3128') -- BOPOMOFO LETTER U- , ("iu", '\x3129') -- BOPOMOFO LETTER IU- , ("v4", '\x312A') -- BOPOMOFO LETTER V- , ("nG", '\x312B') -- BOPOMOFO LETTER NG- , ("gn", '\x312C') -- BOPOMOFO LETTER GN- , ("1c", '\x3220') -- PARENTHESIZED IDEOGRAPH ONE- , ("2c", '\x3221') -- PARENTHESIZED IDEOGRAPH TWO- , ("3c", '\x3222') -- PARENTHESIZED IDEOGRAPH THREE- , ("4c", '\x3223') -- PARENTHESIZED IDEOGRAPH FOUR- , ("5c", '\x3224') -- PARENTHESIZED IDEOGRAPH FIVE- , ("6c", '\x3225') -- PARENTHESIZED IDEOGRAPH SIX- , ("7c", '\x3226') -- PARENTHESIZED IDEOGRAPH SEVEN- , ("8c", '\x3227') -- PARENTHESIZED IDEOGRAPH EIGHT- , ("9c", '\x3228') -- PARENTHESIZED IDEOGRAPH NINE- , ("ff", '\xFB00') -- LATIN SMALL LIGATURE FF- , ("fi", '\xFB01') -- LATIN SMALL LIGATURE FI- , ("fl", '\xFB02') -- LATIN SMALL LIGATURE FL- , ("ft", '\xFB05') -- LATIN SMALL LIGATURE LONG S T- , ("st", '\xFB06') -- LATIN SMALL LIGATURE ST- ]+{-# OPTIONS_GHC -O2 #-}+{-# LANGUAGE BangPatterns #-}++module Yi.Keymap.Vim.Digraph+ ( charFromDigraph+ , defDigraphs+ , DigraphTbl+ ) where++import Control.Applicative (Alternative ((<|>)))++newtype DigraphTbl = DigraphTbl (Char -> Char -> Maybe Char)++charFromDigraph :: DigraphTbl -> Char -> Char -> Maybe Char+charFromDigraph (DigraphTbl tbl) x y = tbl x y <|> tbl y x++defDigraphs :: DigraphTbl+defDigraphs = DigraphTbl lookupDigraph++lookupDigraph :: Char -> Char -> Maybe Char+lookupDigraph !x !y =+ case switch x y of+ '\xFFFF' -> Nothing+ c -> Just c++switch :: Char -> Char -> Char+switch 'N' 'U' = '\x0000' -- NULL (NUL)+switch 'S' 'H' = '\x0001' -- START OF HEADING (SOH)+switch 'S' 'X' = '\x0002' -- START OF TEXT (STX)+switch 'E' 'X' = '\x0003' -- END OF TEXT (ETX)+switch 'E' 'T' = '\x0004' -- END OF TRANSMISSION (EOT)+switch 'E' 'Q' = '\x0005' -- ENQUIRY (ENQ)+switch 'A' 'K' = '\x0006' -- ACKNOWLEDGE (ACK)+switch 'B' 'L' = '\x0007' -- BELL (BEL)+switch 'B' 'S' = '\x0008' -- BACKSPACE (BS)+switch 'H' 'T' = '\x0009' -- CHARACTER TABULATION (HT)+switch 'L' 'F' = '\x000A' -- LINE FEED (LF)+switch 'V' 'T' = '\x000B' -- LINE TABULATION (VT)+switch 'F' 'F' = '\x000C' -- FORM FEED (FF)+switch 'C' 'R' = '\x000D' -- CARRIAGE RETURN (CR)+switch 'S' 'O' = '\x000E' -- SHIFT OUT (SO)+switch 'S' 'I' = '\x000F' -- SHIFT IN (SI)+switch 'D' 'L' = '\x0010' -- DATALINK ESCAPE (DLE)+switch 'D' '1' = '\x0011' -- DEVICE CONTROL ONE (DC1)+switch 'D' '2' = '\x0012' -- DEVICE CONTROL TWO (DC2)+switch 'D' '3' = '\x0013' -- DEVICE CONTROL THREE (DC3)+switch 'D' '4' = '\x0014' -- DEVICE CONTROL FOUR (DC4)+switch 'N' 'K' = '\x0015' -- NEGATIVE ACKNOWLEDGE (NAK)+switch 'S' 'Y' = '\x0016' -- SYNCHRONOUS IDLE (SYN)+switch 'E' 'B' = '\x0017' -- END OF TRANSMISSION BLOCK (ETB)+switch 'C' 'N' = '\x0018' -- CANCEL (CAN)+switch 'E' 'M' = '\x0019' -- END OF MEDIUM (EM)+switch 'S' 'B' = '\x001A' -- SUBSTITUTE (SUB)+switch 'E' 'C' = '\x001B' -- ESCAPE (ESC)+switch 'F' 'S' = '\x001C' -- FILE SEPARATOR (IS4)+switch 'G' 'S' = '\x001D' -- GROUP SEPARATOR (IS3)+switch 'R' 'S' = '\x001E' -- RECORD SEPARATOR (IS2)+switch 'U' 'S' = '\x001F' -- UNIT SEPARATOR (IS1)+switch 'S' 'P' = '\x0020' -- SPACE+switch 'N' 'b' = '\x0023' -- NUMBER SIGN+switch 'D' 'O' = '\x0024' -- DOLLAR SIGN+switch 'A' 't' = '\x0040' -- COMMERCIAL AT+switch '<' '(' = '\x005B' -- LEFT SQUARE BRACKET+switch '/' '/' = '\x005C' -- REVERSE SOLIDUS+switch ')' '>' = '\x005D' -- RIGHT SQUARE BRACKET+switch '\'' '>' = '\x005E' -- CIRCUMFLEX ACCENT+switch '\'' '!' = '\x0060' -- GRAVE ACCENT+switch '(' '!' = '\x007B' -- LEFT CURLY BRACKET+switch '!' '!' = '\x007C' -- VERTICAL LINE+switch '!' ')' = '\x007D' -- RIGHT CURLY BRACKET+switch '\'' '?' = '\x007E' -- TILDE+switch 'D' 'T' = '\x007F' -- DELETE (DEL)+switch 'P' 'A' = '\x0080' -- PADDING CHARACTER (PAD)+switch 'H' 'O' = '\x0081' -- HIGH OCTET PRESET (HOP)+switch 'B' 'H' = '\x0082' -- BREAK PERMITTED HERE (BPH)+switch 'N' 'H' = '\x0083' -- NO BREAK HERE (NBH)+switch 'I' 'N' = '\x0084' -- INDEX (IND)+switch 'N' 'L' = '\x0085' -- NEXT LINE (NEL)+switch 'S' 'A' = '\x0086' -- START OF SELECTED AREA (SSA)+switch 'E' 'S' = '\x0087' -- END OF SELECTED AREA (ESA)+switch 'H' 'S' = '\x0088' -- CHARACTER TABULATION SET (HTS)+switch 'H' 'J' = '\x0089' -- CHARACTER TABULATION WITH JUSTIFICATION (HTJ)+switch 'V' 'S' = '\x008A' -- LINE TABULATION SET (VTS)+switch 'P' 'D' = '\x008B' -- PARTIAL LINE FORWARD (PLD)+switch 'P' 'U' = '\x008C' -- PARTIAL LINE BACKWARD (PLU)+switch 'R' 'I' = '\x008D' -- REVERSE LINE FEED (RI)+switch 'S' '2' = '\x008E' -- SINGLE-SHIFT TWO (SS2)+switch 'S' '3' = '\x008F' -- SINGLE-SHIFT THREE (SS3)+switch 'D' 'C' = '\x0090' -- DEVICE CONTROL STRING (DCS)+switch 'P' '1' = '\x0091' -- PRIVATE USE ONE (PU1)+switch 'P' '2' = '\x0092' -- PRIVATE USE TWO (PU2)+switch 'T' 'S' = '\x0093' -- SET TRANSMIT STATE (STS)+switch 'C' 'C' = '\x0094' -- CANCEL CHARACTER (CCH)+switch 'M' 'W' = '\x0095' -- MESSAGE WAITING (MW)+switch 'S' 'G' = '\x0096' -- START OF GUARDED AREA (SPA)+switch 'E' 'G' = '\x0097' -- END OF GUARDED AREA (EPA)+switch 'S' 'S' = '\x0098' -- START OF STRING (SOS)+switch 'G' 'C' = '\x0099' -- SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)+switch 'S' 'C' = '\x009A' -- SINGLE CHARACTER INTRODUCER (SCI)+switch 'C' 'I' = '\x009B' -- CONTROL SEQUENCE INTRODUCER (CSI)+switch 'S' 'T' = '\x009C' -- STRING TERMINATOR (ST)+switch 'O' 'C' = '\x009D' -- OPERATING SYSTEM COMMAND (OSC)+switch 'P' 'M' = '\x009E' -- PRIVACY MESSAGE (PM)+switch 'A' 'C' = '\x009F' -- APPLICATION PROGRAM COMMAND (APC)+switch 'N' 'S' = '\x00A0' -- NO-BREAK SPACE+switch '!' 'I' = '\x00A1' -- INVERTED EXCLAMATION MARK+switch 'C' 't' = '\x00A2' -- CENT SIGN+switch 'P' 'd' = '\x00A3' -- POUND SIGN+switch 'C' 'u' = '\x00A4' -- CURRENCY SIGN+switch 'Y' 'e' = '\x00A5' -- YEN SIGN+switch 'B' 'B' = '\x00A6' -- BROKEN BAR+switch 'S' 'E' = '\x00A7' -- SECTION SIGN+switch '\'' ':' = '\x00A8' -- DIAERESIS+switch 'C' 'o' = '\x00A9' -- COPYRIGHT SIGN+switch '-' 'a' = '\x00AA' -- FEMININE ORDINAL INDICATOR+switch '<' '<' = '\x00AB' -- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK+switch 'N' 'O' = '\x00AC' -- NOT SIGN+switch '-' '-' = '\x00AD' -- SOFT HYPHEN+switch 'R' 'g' = '\x00AE' -- REGISTERED SIGN+switch '\'' 'm' = '\x00AF' -- MACRON+switch 'D' 'G' = '\x00B0' -- DEGREE SIGN+switch '+' '-' = '\x00B1' -- PLUS-MINUS SIGN+switch '2' 'S' = '\x00B2' -- SUPERSCRIPT TWO+switch '3' 'S' = '\x00B3' -- SUPERSCRIPT THREE+switch '\'' '\'' = '\x00B4' -- ACUTE ACCENT+switch 'M' 'y' = '\x00B5' -- MICRO SIGN+switch 'P' 'I' = '\x00B6' -- PILCROW SIGN+switch '.' 'M' = '\x00B7' -- MIDDLE DOT+switch '\'' ',' = '\x00B8' -- CEDILLA+switch '1' 'S' = '\x00B9' -- SUPERSCRIPT ONE+switch '-' 'o' = '\x00BA' -- MASCULINE ORDINAL INDICATOR+switch '>' '>' = '\x00BB' -- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK+switch '1' '4' = '\x00BC' -- VULGAR FRACTION ONE QUARTER+switch '1' '2' = '\x00BD' -- VULGAR FRACTION ONE HALF+switch '3' '4' = '\x00BE' -- VULGAR FRACTION THREE QUARTERS+switch '?' 'I' = '\x00BF' -- INVERTED QUESTION MARK+switch 'A' '!' = '\x00C0' -- LATIN CAPITAL LETTER A WITH GRAVE+switch 'A' '\'' = '\x00C1' -- LATIN CAPITAL LETTER A WITH ACUTE+switch 'A' '>' = '\x00C2' -- LATIN CAPITAL LETTER A WITH CIRCUMFLEX+switch 'A' '?' = '\x00C3' -- LATIN CAPITAL LETTER A WITH TILDE+switch 'A' ':' = '\x00C4' -- LATIN CAPITAL LETTER A WITH DIAERESIS+switch 'A' 'A' = '\x00C5' -- LATIN CAPITAL LETTER A WITH RING ABOVE+switch 'A' 'E' = '\x00C6' -- LATIN CAPITAL LETTER AE+switch 'C' ',' = '\x00C7' -- LATIN CAPITAL LETTER C WITH CEDILLA+switch 'E' '!' = '\x00C8' -- LATIN CAPITAL LETTER E WITH GRAVE+switch 'E' '\'' = '\x00C9' -- LATIN CAPITAL LETTER E WITH ACUTE+switch 'E' '>' = '\x00CA' -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX+switch 'E' ':' = '\x00CB' -- LATIN CAPITAL LETTER E WITH DIAERESIS+switch 'I' '!' = '\x00CC' -- LATIN CAPITAL LETTER I WITH GRAVE+switch 'I' '\'' = '\x00CD' -- LATIN CAPITAL LETTER I WITH ACUTE+switch 'I' '>' = '\x00CE' -- LATIN CAPITAL LETTER I WITH CIRCUMFLEX+switch 'I' ':' = '\x00CF' -- LATIN CAPITAL LETTER I WITH DIAERESIS+switch 'D' '-' = '\x00D0' -- LATIN CAPITAL LETTER ETH (Icelandic)+switch 'N' '?' = '\x00D1' -- LATIN CAPITAL LETTER N WITH TILDE+switch 'O' '!' = '\x00D2' -- LATIN CAPITAL LETTER O WITH GRAVE+switch 'O' '\'' = '\x00D3' -- LATIN CAPITAL LETTER O WITH ACUTE+switch 'O' '>' = '\x00D4' -- LATIN CAPITAL LETTER O WITH CIRCUMFLEX+switch 'O' '?' = '\x00D5' -- LATIN CAPITAL LETTER O WITH TILDE+switch 'O' ':' = '\x00D6' -- LATIN CAPITAL LETTER O WITH DIAERESIS+switch '*' 'X' = '\x00D7' -- MULTIPLICATION SIGN+switch 'O' '/' = '\x00D8' -- LATIN CAPITAL LETTER O WITH STROKE+switch 'U' '!' = '\x00D9' -- LATIN CAPITAL LETTER U WITH GRAVE+switch 'U' '\'' = '\x00DA' -- LATIN CAPITAL LETTER U WITH ACUTE+switch 'U' '>' = '\x00DB' -- LATIN CAPITAL LETTER U WITH CIRCUMFLEX+switch 'U' ':' = '\x00DC' -- LATIN CAPITAL LETTER U WITH DIAERESIS+switch 'Y' '\'' = '\x00DD' -- LATIN CAPITAL LETTER Y WITH ACUTE+switch 'T' 'H' = '\x00DE' -- LATIN CAPITAL LETTER THORN (Icelandic)+switch 's' 's' = '\x00DF' -- LATIN SMALL LETTER SHARP S (German)+switch 'a' '!' = '\x00E0' -- LATIN SMALL LETTER A WITH GRAVE+switch 'a' '\'' = '\x00E1' -- LATIN SMALL LETTER A WITH ACUTE+switch 'a' '>' = '\x00E2' -- LATIN SMALL LETTER A WITH CIRCUMFLEX+switch 'a' '?' = '\x00E3' -- LATIN SMALL LETTER A WITH TILDE+switch 'a' ':' = '\x00E4' -- LATIN SMALL LETTER A WITH DIAERESIS+switch 'a' 'a' = '\x00E5' -- LATIN SMALL LETTER A WITH RING ABOVE+switch 'a' 'e' = '\x00E6' -- LATIN SMALL LETTER AE+switch 'c' ',' = '\x00E7' -- LATIN SMALL LETTER C WITH CEDILLA+switch 'e' '!' = '\x00E8' -- LATIN SMALL LETTER E WITH GRAVE+switch 'e' '\'' = '\x00E9' -- LATIN SMALL LETTER E WITH ACUTE+switch 'e' '>' = '\x00EA' -- LATIN SMALL LETTER E WITH CIRCUMFLEX+switch 'e' ':' = '\x00EB' -- LATIN SMALL LETTER E WITH DIAERESIS+switch 'i' '!' = '\x00EC' -- LATIN SMALL LETTER I WITH GRAVE+switch 'i' '\'' = '\x00ED' -- LATIN SMALL LETTER I WITH ACUTE+switch 'i' '>' = '\x00EE' -- LATIN SMALL LETTER I WITH CIRCUMFLEX+switch 'i' ':' = '\x00EF' -- LATIN SMALL LETTER I WITH DIAERESIS+switch 'd' '-' = '\x00F0' -- LATIN SMALL LETTER ETH (Icelandic)+switch 'n' '?' = '\x00F1' -- LATIN SMALL LETTER N WITH TILDE+switch 'o' '!' = '\x00F2' -- LATIN SMALL LETTER O WITH GRAVE+switch 'o' '\'' = '\x00F3' -- LATIN SMALL LETTER O WITH ACUTE+switch 'o' '>' = '\x00F4' -- LATIN SMALL LETTER O WITH CIRCUMFLEX+switch 'o' '?' = '\x00F5' -- LATIN SMALL LETTER O WITH TILDE+switch 'o' ':' = '\x00F6' -- LATIN SMALL LETTER O WITH DIAERESIS+switch '-' ':' = '\x00F7' -- DIVISION SIGN+switch 'o' '/' = '\x00F8' -- LATIN SMALL LETTER O WITH STROKE+switch 'u' '!' = '\x00F9' -- LATIN SMALL LETTER U WITH GRAVE+switch 'u' '\'' = '\x00FA' -- LATIN SMALL LETTER U WITH ACUTE+switch 'u' '>' = '\x00FB' -- LATIN SMALL LETTER U WITH CIRCUMFLEX+switch 'u' ':' = '\x00FC' -- LATIN SMALL LETTER U WITH DIAERESIS+switch 'y' '\'' = '\x00FD' -- LATIN SMALL LETTER Y WITH ACUTE+switch 't' 'h' = '\x00FE' -- LATIN SMALL LETTER THORN (Icelandic)+switch 'y' ':' = '\x00FF' -- LATIN SMALL LETTER Y WITH DIAERESIS+switch 'A' '-' = '\x0100' -- LATIN CAPITAL LETTER A WITH MACRON+switch 'a' '-' = '\x0101' -- LATIN SMALL LETTER A WITH MACRON+switch 'A' '(' = '\x0102' -- LATIN CAPITAL LETTER A WITH BREVE+switch 'a' '(' = '\x0103' -- LATIN SMALL LETTER A WITH BREVE+switch 'A' ';' = '\x0104' -- LATIN CAPITAL LETTER A WITH OGONEK+switch 'a' ';' = '\x0105' -- LATIN SMALL LETTER A WITH OGONEK+switch 'C' '\'' = '\x0106' -- LATIN CAPITAL LETTER C WITH ACUTE+switch 'c' '\'' = '\x0107' -- LATIN SMALL LETTER C WITH ACUTE+switch 'C' '>' = '\x0108' -- LATIN CAPITAL LETTER C WITH CIRCUMFLEX+switch 'c' '>' = '\x0109' -- LATIN SMALL LETTER C WITH CIRCUMFLEX+switch 'C' '.' = '\x010A' -- LATIN CAPITAL LETTER C WITH DOT ABOVE+switch 'c' '.' = '\x010B' -- LATIN SMALL LETTER C WITH DOT ABOVE+switch 'C' '<' = '\x010C' -- LATIN CAPITAL LETTER C WITH CARON+switch 'c' '<' = '\x010D' -- LATIN SMALL LETTER C WITH CARON+switch 'D' '<' = '\x010E' -- LATIN CAPITAL LETTER D WITH CARON+switch 'd' '<' = '\x010F' -- LATIN SMALL LETTER D WITH CARON+switch 'D' '/' = '\x0110' -- LATIN CAPITAL LETTER D WITH STROKE+switch 'd' '/' = '\x0111' -- LATIN SMALL LETTER D WITH STROKE+switch 'E' '-' = '\x0112' -- LATIN CAPITAL LETTER E WITH MACRON+switch 'e' '-' = '\x0113' -- LATIN SMALL LETTER E WITH MACRON+switch 'E' '(' = '\x0114' -- LATIN CAPITAL LETTER E WITH BREVE+switch 'e' '(' = '\x0115' -- LATIN SMALL LETTER E WITH BREVE+switch 'E' '.' = '\x0116' -- LATIN CAPITAL LETTER E WITH DOT ABOVE+switch 'e' '.' = '\x0117' -- LATIN SMALL LETTER E WITH DOT ABOVE+switch 'E' ';' = '\x0118' -- LATIN CAPITAL LETTER E WITH OGONEK+switch 'e' ';' = '\x0119' -- LATIN SMALL LETTER E WITH OGONEK+switch 'E' '<' = '\x011A' -- LATIN CAPITAL LETTER E WITH CARON+switch 'e' '<' = '\x011B' -- LATIN SMALL LETTER E WITH CARON+switch 'G' '>' = '\x011C' -- LATIN CAPITAL LETTER G WITH CIRCUMFLEX+switch 'g' '>' = '\x011D' -- LATIN SMALL LETTER G WITH CIRCUMFLEX+switch 'G' '(' = '\x011E' -- LATIN CAPITAL LETTER G WITH BREVE+switch 'g' '(' = '\x011F' -- LATIN SMALL LETTER G WITH BREVE+switch 'G' '.' = '\x0120' -- LATIN CAPITAL LETTER G WITH DOT ABOVE+switch 'g' '.' = '\x0121' -- LATIN SMALL LETTER G WITH DOT ABOVE+switch 'G' ',' = '\x0122' -- LATIN CAPITAL LETTER G WITH CEDILLA+switch 'g' ',' = '\x0123' -- LATIN SMALL LETTER G WITH CEDILLA+switch 'H' '>' = '\x0124' -- LATIN CAPITAL LETTER H WITH CIRCUMFLEX+switch 'h' '>' = '\x0125' -- LATIN SMALL LETTER H WITH CIRCUMFLEX+switch 'H' '/' = '\x0126' -- LATIN CAPITAL LETTER H WITH STROKE+switch 'h' '/' = '\x0127' -- LATIN SMALL LETTER H WITH STROKE+switch 'I' '?' = '\x0128' -- LATIN CAPITAL LETTER I WITH TILDE+switch 'i' '?' = '\x0129' -- LATIN SMALL LETTER I WITH TILDE+switch 'I' '-' = '\x012A' -- LATIN CAPITAL LETTER I WITH MACRON+switch 'i' '-' = '\x012B' -- LATIN SMALL LETTER I WITH MACRON+switch 'I' '(' = '\x012C' -- LATIN CAPITAL LETTER I WITH BREVE+switch 'i' '(' = '\x012D' -- LATIN SMALL LETTER I WITH BREVE+switch 'I' ';' = '\x012E' -- LATIN CAPITAL LETTER I WITH OGONEK+switch 'i' ';' = '\x012F' -- LATIN SMALL LETTER I WITH OGONEK+switch 'I' '.' = '\x0130' -- LATIN CAPITAL LETTER I WITH DOT ABOVE+switch 'i' '.' = '\x0131' -- LATIN SMALL LETTER DOTLESS I+switch 'I' 'J' = '\x0132' -- LATIN CAPITAL LIGATURE IJ+switch 'i' 'j' = '\x0133' -- LATIN SMALL LIGATURE IJ+switch 'J' '>' = '\x0134' -- LATIN CAPITAL LETTER J WITH CIRCUMFLEX+switch 'j' '>' = '\x0135' -- LATIN SMALL LETTER J WITH CIRCUMFLEX+switch 'K' ',' = '\x0136' -- LATIN CAPITAL LETTER K WITH CEDILLA+switch 'k' ',' = '\x0137' -- LATIN SMALL LETTER K WITH CEDILLA+switch 'k' 'k' = '\x0138' -- LATIN SMALL LETTER KRA+switch 'L' '\'' = '\x0139' -- LATIN CAPITAL LETTER L WITH ACUTE+switch 'l' '\'' = '\x013A' -- LATIN SMALL LETTER L WITH ACUTE+switch 'L' ',' = '\x013B' -- LATIN CAPITAL LETTER L WITH CEDILLA+switch 'l' ',' = '\x013C' -- LATIN SMALL LETTER L WITH CEDILLA+switch 'L' '<' = '\x013D' -- LATIN CAPITAL LETTER L WITH CARON+switch 'l' '<' = '\x013E' -- LATIN SMALL LETTER L WITH CARON+switch 'L' '.' = '\x013F' -- LATIN CAPITAL LETTER L WITH MIDDLE DOT+switch 'l' '.' = '\x0140' -- LATIN SMALL LETTER L WITH MIDDLE DOT+switch 'L' '/' = '\x0141' -- LATIN CAPITAL LETTER L WITH STROKE+switch 'l' '/' = '\x0142' -- LATIN SMALL LETTER L WITH STROKE+switch 'N' '\'' = '\x0143' -- LATIN CAPITAL LETTER N WITH ACUTE `+switch 'n' '\'' = '\x0144' -- LATIN SMALL LETTER N WITH ACUTE `+switch 'N' ',' = '\x0145' -- LATIN CAPITAL LETTER N WITH CEDILLA `+switch 'n' ',' = '\x0146' -- LATIN SMALL LETTER N WITH CEDILLA `+switch 'N' '<' = '\x0147' -- LATIN CAPITAL LETTER N WITH CARON `+switch 'n' '<' = '\x0148' -- LATIN SMALL LETTER N WITH CARON `+switch '\'' 'n' = '\x0149' -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE `+switch 'N' 'G' = '\x014A' -- LATIN CAPITAL LETTER ENG+switch 'n' 'g' = '\x014B' -- LATIN SMALL LETTER ENG+switch 'O' '-' = '\x014C' -- LATIN CAPITAL LETTER O WITH MACRON+switch 'o' '-' = '\x014D' -- LATIN SMALL LETTER O WITH MACRON+switch 'O' '(' = '\x014E' -- LATIN CAPITAL LETTER O WITH BREVE+switch 'o' '(' = '\x014F' -- LATIN SMALL LETTER O WITH BREVE+switch 'O' '"' = '\x0150' -- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE+switch 'o' '"' = '\x0151' -- LATIN SMALL LETTER O WITH DOUBLE ACUTE+switch 'O' 'E' = '\x0152' -- LATIN CAPITAL LIGATURE OE+switch 'o' 'e' = '\x0153' -- LATIN SMALL LIGATURE OE+switch 'R' '\'' = '\x0154' -- LATIN CAPITAL LETTER R WITH ACUTE+switch 'r' '\'' = '\x0155' -- LATIN SMALL LETTER R WITH ACUTE+switch 'R' ',' = '\x0156' -- LATIN CAPITAL LETTER R WITH CEDILLA+switch 'r' ',' = '\x0157' -- LATIN SMALL LETTER R WITH CEDILLA+switch 'R' '<' = '\x0158' -- LATIN CAPITAL LETTER R WITH CARON+switch 'r' '<' = '\x0159' -- LATIN SMALL LETTER R WITH CARON+switch 'S' '\'' = '\x015A' -- LATIN CAPITAL LETTER S WITH ACUTE+switch 's' '\'' = '\x015B' -- LATIN SMALL LETTER S WITH ACUTE+switch 'S' '>' = '\x015C' -- LATIN CAPITAL LETTER S WITH CIRCUMFLEX+switch 's' '>' = '\x015D' -- LATIN SMALL LETTER S WITH CIRCUMFLEX+switch 'S' ',' = '\x015E' -- LATIN CAPITAL LETTER S WITH CEDILLA+switch 's' ',' = '\x015F' -- LATIN SMALL LETTER S WITH CEDILLA+switch 'S' '<' = '\x0160' -- LATIN CAPITAL LETTER S WITH CARON+switch 's' '<' = '\x0161' -- LATIN SMALL LETTER S WITH CARON+switch 'T' ',' = '\x0162' -- LATIN CAPITAL LETTER T WITH CEDILLA+switch 't' ',' = '\x0163' -- LATIN SMALL LETTER T WITH CEDILLA+switch 'T' '<' = '\x0164' -- LATIN CAPITAL LETTER T WITH CARON+switch 't' '<' = '\x0165' -- LATIN SMALL LETTER T WITH CARON+switch 'T' '/' = '\x0166' -- LATIN CAPITAL LETTER T WITH STROKE+switch 't' '/' = '\x0167' -- LATIN SMALL LETTER T WITH STROKE+switch 'U' '?' = '\x0168' -- LATIN CAPITAL LETTER U WITH TILDE+switch 'u' '?' = '\x0169' -- LATIN SMALL LETTER U WITH TILDE+switch 'U' '-' = '\x016A' -- LATIN CAPITAL LETTER U WITH MACRON+switch 'u' '-' = '\x016B' -- LATIN SMALL LETTER U WITH MACRON+switch 'U' '(' = '\x016C' -- LATIN CAPITAL LETTER U WITH BREVE+switch 'u' '(' = '\x016D' -- LATIN SMALL LETTER U WITH BREVE+switch 'U' '0' = '\x016E' -- LATIN CAPITAL LETTER U WITH RING ABOVE+switch 'u' '0' = '\x016F' -- LATIN SMALL LETTER U WITH RING ABOVE+switch 'U' '"' = '\x0170' -- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE+switch 'u' '"' = '\x0171' -- LATIN SMALL LETTER U WITH DOUBLE ACUTE+switch 'U' ';' = '\x0172' -- LATIN CAPITAL LETTER U WITH OGONEK+switch 'u' ';' = '\x0173' -- LATIN SMALL LETTER U WITH OGONEK+switch 'W' '>' = '\x0174' -- LATIN CAPITAL LETTER W WITH CIRCUMFLEX+switch 'w' '>' = '\x0175' -- LATIN SMALL LETTER W WITH CIRCUMFLEX+switch 'Y' '>' = '\x0176' -- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX+switch 'y' '>' = '\x0177' -- LATIN SMALL LETTER Y WITH CIRCUMFLEX+switch 'Y' ':' = '\x0178' -- LATIN CAPITAL LETTER Y WITH DIAERESIS+switch 'Z' '\'' = '\x0179' -- LATIN CAPITAL LETTER Z WITH ACUTE+switch 'z' '\'' = '\x017A' -- LATIN SMALL LETTER Z WITH ACUTE+switch 'Z' '.' = '\x017B' -- LATIN CAPITAL LETTER Z WITH DOT ABOVE+switch 'z' '.' = '\x017C' -- LATIN SMALL LETTER Z WITH DOT ABOVE+switch 'Z' '<' = '\x017D' -- LATIN CAPITAL LETTER Z WITH CARON+switch 'z' '<' = '\x017E' -- LATIN SMALL LETTER Z WITH CARON+switch 'O' '9' = '\x01A0' -- LATIN CAPITAL LETTER O WITH HORN+switch 'o' '9' = '\x01A1' -- LATIN SMALL LETTER O WITH HORN+switch 'O' 'I' = '\x01A2' -- LATIN CAPITAL LETTER OI+switch 'o' 'i' = '\x01A3' -- LATIN SMALL LETTER OI+switch 'y' 'r' = '\x01A6' -- LATIN LETTER YR+switch 'U' '9' = '\x01AF' -- LATIN CAPITAL LETTER U WITH HORN+switch 'u' '9' = '\x01B0' -- LATIN SMALL LETTER U WITH HORN+switch 'Z' '/' = '\x01B5' -- LATIN CAPITAL LETTER Z WITH STROKE+switch 'z' '/' = '\x01B6' -- LATIN SMALL LETTER Z WITH STROKE+switch 'E' 'D' = '\x01B7' -- LATIN CAPITAL LETTER EZH+switch 'A' '<' = '\x01CD' -- LATIN CAPITAL LETTER A WITH CARON+switch 'a' '<' = '\x01CE' -- LATIN SMALL LETTER A WITH CARON+switch 'I' '<' = '\x01CF' -- LATIN CAPITAL LETTER I WITH CARON+switch 'i' '<' = '\x01D0' -- LATIN SMALL LETTER I WITH CARON+switch 'O' '<' = '\x01D1' -- LATIN CAPITAL LETTER O WITH CARON+switch 'o' '<' = '\x01D2' -- LATIN SMALL LETTER O WITH CARON+switch 'U' '<' = '\x01D3' -- LATIN CAPITAL LETTER U WITH CARON+switch 'u' '<' = '\x01D4' -- LATIN SMALL LETTER U WITH CARON+switch 'A' '1' = '\x01DE' -- LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON+switch 'a' '1' = '\x01DF' -- LATIN SMALL LETTER A WITH DIAERESIS AND MACRON+switch 'A' '7' = '\x01E0' -- LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON+switch 'a' '7' = '\x01E1' -- LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON+switch 'A' '3' = '\x01E2' -- LATIN CAPITAL LETTER AE WITH MACRON+switch 'a' '3' = '\x01E3' -- LATIN SMALL LETTER AE WITH MACRON+switch 'G' '/' = '\x01E4' -- LATIN CAPITAL LETTER G WITH STROKE+switch 'g' '/' = '\x01E5' -- LATIN SMALL LETTER G WITH STROKE+switch 'G' '<' = '\x01E6' -- LATIN CAPITAL LETTER G WITH CARON+switch 'g' '<' = '\x01E7' -- LATIN SMALL LETTER G WITH CARON+switch 'K' '<' = '\x01E8' -- LATIN CAPITAL LETTER K WITH CARON+switch 'k' '<' = '\x01E9' -- LATIN SMALL LETTER K WITH CARON+switch 'O' ';' = '\x01EA' -- LATIN CAPITAL LETTER O WITH OGONEK+switch 'o' ';' = '\x01EB' -- LATIN SMALL LETTER O WITH OGONEK+switch 'O' '1' = '\x01EC' -- LATIN CAPITAL LETTER O WITH OGONEK AND MACRON+switch 'o' '1' = '\x01ED' -- LATIN SMALL LETTER O WITH OGONEK AND MACRON+switch 'E' 'Z' = '\x01EE' -- LATIN CAPITAL LETTER EZH WITH CARON+switch 'e' 'z' = '\x01EF' -- LATIN SMALL LETTER EZH WITH CARON+switch 'j' '<' = '\x01F0' -- LATIN SMALL LETTER J WITH CARON+switch 'G' '\'' = '\x01F4' -- LATIN CAPITAL LETTER G WITH ACUTE+switch 'g' '\'' = '\x01F5' -- LATIN SMALL LETTER G WITH ACUTE+switch ';' 'S' = '\x02BF' -- MODIFIER LETTER LEFT HALF RING+switch '\'' '<' = '\x02C7' -- CARON+switch '\'' '(' = '\x02D8' -- BREVE+switch '\'' '.' = '\x02D9' -- DOT ABOVE+switch '\'' '0' = '\x02DA' -- RING ABOVE+switch '\'' ';' = '\x02DB' -- OGONEK+switch '\'' '"' = '\x02DD' -- DOUBLE ACUTE ACCENT+switch 'A' '%' = '\x0386' -- GREEK CAPITAL LETTER ALPHA WITH TONOS+switch 'E' '%' = '\x0388' -- GREEK CAPITAL LETTER EPSILON WITH TONOS+switch 'Y' '%' = '\x0389' -- GREEK CAPITAL LETTER ETA WITH TONOS+switch 'I' '%' = '\x038A' -- GREEK CAPITAL LETTER IOTA WITH TONOS+switch 'O' '%' = '\x038C' -- GREEK CAPITAL LETTER OMICRON WITH TONOS+switch 'U' '%' = '\x038E' -- GREEK CAPITAL LETTER UPSILON WITH TONOS+switch 'W' '%' = '\x038F' -- GREEK CAPITAL LETTER OMEGA WITH TONOS+switch 'i' '3' = '\x0390' -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS+switch 'A' '*' = '\x0391' -- GREEK CAPITAL LETTER ALPHA+switch 'B' '*' = '\x0392' -- GREEK CAPITAL LETTER BETA+switch 'G' '*' = '\x0393' -- GREEK CAPITAL LETTER GAMMA+switch 'D' '*' = '\x0394' -- GREEK CAPITAL LETTER DELTA+switch 'E' '*' = '\x0395' -- GREEK CAPITAL LETTER EPSILON+switch 'Z' '*' = '\x0396' -- GREEK CAPITAL LETTER ZETA+switch 'Y' '*' = '\x0397' -- GREEK CAPITAL LETTER ETA+switch 'H' '*' = '\x0398' -- GREEK CAPITAL LETTER THETA+switch 'I' '*' = '\x0399' -- GREEK CAPITAL LETTER IOTA+switch 'K' '*' = '\x039A' -- GREEK CAPITAL LETTER KAPPA+switch 'L' '*' = '\x039B' -- GREEK CAPITAL LETTER LAMDA+switch 'M' '*' = '\x039C' -- GREEK CAPITAL LETTER MU+switch 'N' '*' = '\x039D' -- GREEK CAPITAL LETTER NU+switch 'C' '*' = '\x039E' -- GREEK CAPITAL LETTER XI+switch 'O' '*' = '\x039F' -- GREEK CAPITAL LETTER OMICRON+switch 'P' '*' = '\x03A0' -- GREEK CAPITAL LETTER PI+switch 'R' '*' = '\x03A1' -- GREEK CAPITAL LETTER RHO+switch 'S' '*' = '\x03A3' -- GREEK CAPITAL LETTER SIGMA+switch 'T' '*' = '\x03A4' -- GREEK CAPITAL LETTER TAU+switch 'U' '*' = '\x03A5' -- GREEK CAPITAL LETTER UPSILON+switch 'F' '*' = '\x03A6' -- GREEK CAPITAL LETTER PHI+switch 'X' '*' = '\x03A7' -- GREEK CAPITAL LETTER CHI+switch 'Q' '*' = '\x03A8' -- GREEK CAPITAL LETTER PSI+switch 'W' '*' = '\x03A9' -- GREEK CAPITAL LETTER OMEGA+switch 'J' '*' = '\x03AA' -- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA+switch 'V' '*' = '\x03AB' -- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA+switch 'a' '%' = '\x03AC' -- GREEK SMALL LETTER ALPHA WITH TONOS+switch 'e' '%' = '\x03AD' -- GREEK SMALL LETTER EPSILON WITH TONOS+switch 'y' '%' = '\x03AE' -- GREEK SMALL LETTER ETA WITH TONOS+switch 'i' '%' = '\x03AF' -- GREEK SMALL LETTER IOTA WITH TONOS+switch 'u' '3' = '\x03B0' -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS+switch 'a' '*' = '\x03B1' -- GREEK SMALL LETTER ALPHA+switch 'b' '*' = '\x03B2' -- GREEK SMALL LETTER BETA+switch 'g' '*' = '\x03B3' -- GREEK SMALL LETTER GAMMA+switch 'd' '*' = '\x03B4' -- GREEK SMALL LETTER DELTA+switch 'e' '*' = '\x03B5' -- GREEK SMALL LETTER EPSILON+switch 'z' '*' = '\x03B6' -- GREEK SMALL LETTER ZETA+switch 'y' '*' = '\x03B7' -- GREEK SMALL LETTER ETA+switch 'h' '*' = '\x03B8' -- GREEK SMALL LETTER THETA+switch 'i' '*' = '\x03B9' -- GREEK SMALL LETTER IOTA+switch 'k' '*' = '\x03BA' -- GREEK SMALL LETTER KAPPA+switch 'l' '*' = '\x03BB' -- GREEK SMALL LETTER LAMDA+switch 'm' '*' = '\x03BC' -- GREEK SMALL LETTER MU+switch 'n' '*' = '\x03BD' -- GREEK SMALL LETTER NU+switch 'c' '*' = '\x03BE' -- GREEK SMALL LETTER XI+switch 'o' '*' = '\x03BF' -- GREEK SMALL LETTER OMICRON+switch 'p' '*' = '\x03C0' -- GREEK SMALL LETTER PI+switch 'r' '*' = '\x03C1' -- GREEK SMALL LETTER RHO+switch '*' 's' = '\x03C2' -- GREEK SMALL LETTER FINAL SIGMA+switch 's' '*' = '\x03C3' -- GREEK SMALL LETTER SIGMA+switch 't' '*' = '\x03C4' -- GREEK SMALL LETTER TAU+switch 'u' '*' = '\x03C5' -- GREEK SMALL LETTER UPSILON+switch 'f' '*' = '\x03C6' -- GREEK SMALL LETTER PHI+switch 'x' '*' = '\x03C7' -- GREEK SMALL LETTER CHI+switch 'q' '*' = '\x03C8' -- GREEK SMALL LETTER PSI+switch 'w' '*' = '\x03C9' -- GREEK SMALL LETTER OMEGA+switch 'j' '*' = '\x03CA' -- GREEK SMALL LETTER IOTA WITH DIALYTIKA+switch 'v' '*' = '\x03CB' -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA+switch 'o' '%' = '\x03CC' -- GREEK SMALL LETTER OMICRON WITH TONOS+switch 'u' '%' = '\x03CD' -- GREEK SMALL LETTER UPSILON WITH TONOS+switch 'w' '%' = '\x03CE' -- GREEK SMALL LETTER OMEGA WITH TONOS+switch '\'' 'G' = '\x03D8' -- GREEK LETTER ARCHAIC KOPPA+switch ',' 'G' = '\x03D9' -- GREEK SMALL LETTER ARCHAIC KOPPA+switch 'T' '3' = '\x03DA' -- GREEK LETTER STIGMA+switch 't' '3' = '\x03DB' -- GREEK SMALL LETTER STIGMA+switch 'M' '3' = '\x03DC' -- GREEK LETTER DIGAMMA+switch 'm' '3' = '\x03DD' -- GREEK SMALL LETTER DIGAMMA+switch 'K' '3' = '\x03DE' -- GREEK LETTER KOPPA+switch 'k' '3' = '\x03DF' -- GREEK SMALL LETTER KOPPA+switch 'P' '3' = '\x03E0' -- GREEK LETTER SAMPI+switch 'p' '3' = '\x03E1' -- GREEK SMALL LETTER SAMPI+switch '\'' '%' = '\x03F4' -- GREEK CAPITAL THETA SYMBOL+switch 'j' '3' = '\x03F5' -- GREEK LUNATE EPSILON SYMBOL+switch 'I' 'O' = '\x0401' -- CYRILLIC CAPITAL LETTER IO+switch 'D' '%' = '\x0402' -- CYRILLIC CAPITAL LETTER DJE+switch 'G' '%' = '\x0403' -- CYRILLIC CAPITAL LETTER GJE+switch 'I' 'E' = '\x0404' -- CYRILLIC CAPITAL LETTER UKRAINIAN IE+switch 'D' 'S' = '\x0405' -- CYRILLIC CAPITAL LETTER DZE+switch 'I' 'I' = '\x0406' -- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I+switch 'Y' 'I' = '\x0407' -- CYRILLIC CAPITAL LETTER YI+switch 'J' '%' = '\x0408' -- CYRILLIC CAPITAL LETTER JE+switch 'L' 'J' = '\x0409' -- CYRILLIC CAPITAL LETTER LJE+switch 'N' 'J' = '\x040A' -- CYRILLIC CAPITAL LETTER NJE+switch 'T' 's' = '\x040B' -- CYRILLIC CAPITAL LETTER TSHE+switch 'K' 'J' = '\x040C' -- CYRILLIC CAPITAL LETTER KJE+switch 'V' '%' = '\x040E' -- CYRILLIC CAPITAL LETTER SHORT U+switch 'D' 'Z' = '\x040F' -- CYRILLIC CAPITAL LETTER DZHE+switch 'A' '=' = '\x0410' -- CYRILLIC CAPITAL LETTER A+switch 'B' '=' = '\x0411' -- CYRILLIC CAPITAL LETTER BE+switch 'V' '=' = '\x0412' -- CYRILLIC CAPITAL LETTER VE+switch 'G' '=' = '\x0413' -- CYRILLIC CAPITAL LETTER GHE+switch 'D' '=' = '\x0414' -- CYRILLIC CAPITAL LETTER DE+switch 'E' '=' = '\x0415' -- CYRILLIC CAPITAL LETTER IE+switch 'Z' '%' = '\x0416' -- CYRILLIC CAPITAL LETTER ZHE+switch 'Z' '=' = '\x0417' -- CYRILLIC CAPITAL LETTER ZE+switch 'I' '=' = '\x0418' -- CYRILLIC CAPITAL LETTER I+switch 'J' '=' = '\x0419' -- CYRILLIC CAPITAL LETTER SHORT I+switch 'K' '=' = '\x041A' -- CYRILLIC CAPITAL LETTER KA+switch 'L' '=' = '\x041B' -- CYRILLIC CAPITAL LETTER EL+switch 'M' '=' = '\x041C' -- CYRILLIC CAPITAL LETTER EM+switch 'N' '=' = '\x041D' -- CYRILLIC CAPITAL LETTER EN+switch 'O' '=' = '\x041E' -- CYRILLIC CAPITAL LETTER O+switch 'P' '=' = '\x041F' -- CYRILLIC CAPITAL LETTER PE+switch 'R' '=' = '\x0420' -- CYRILLIC CAPITAL LETTER ER+switch 'S' '=' = '\x0421' -- CYRILLIC CAPITAL LETTER ES+switch 'T' '=' = '\x0422' -- CYRILLIC CAPITAL LETTER TE+switch 'U' '=' = '\x0423' -- CYRILLIC CAPITAL LETTER U+switch 'F' '=' = '\x0424' -- CYRILLIC CAPITAL LETTER EF+switch 'H' '=' = '\x0425' -- CYRILLIC CAPITAL LETTER HA+switch 'C' '=' = '\x0426' -- CYRILLIC CAPITAL LETTER TSE+switch 'C' '%' = '\x0427' -- CYRILLIC CAPITAL LETTER CHE+switch 'S' '%' = '\x0428' -- CYRILLIC CAPITAL LETTER SHA+switch 'S' 'c' = '\x0429' -- CYRILLIC CAPITAL LETTER SHCHA+switch '=' '"' = '\x042A' -- CYRILLIC CAPITAL LETTER HARD SIGN+switch 'Y' '=' = '\x042B' -- CYRILLIC CAPITAL LETTER YERU+switch '%' '"' = '\x042C' -- CYRILLIC CAPITAL LETTER SOFT SIGN+switch 'J' 'E' = '\x042D' -- CYRILLIC CAPITAL LETTER E+switch 'J' 'U' = '\x042E' -- CYRILLIC CAPITAL LETTER YU+switch 'J' 'A' = '\x042F' -- CYRILLIC CAPITAL LETTER YA+switch 'a' '=' = '\x0430' -- CYRILLIC SMALL LETTER A+switch 'b' '=' = '\x0431' -- CYRILLIC SMALL LETTER BE+switch 'v' '=' = '\x0432' -- CYRILLIC SMALL LETTER VE+switch 'g' '=' = '\x0433' -- CYRILLIC SMALL LETTER GHE+switch 'd' '=' = '\x0434' -- CYRILLIC SMALL LETTER DE+switch 'e' '=' = '\x0435' -- CYRILLIC SMALL LETTER IE+switch 'z' '%' = '\x0436' -- CYRILLIC SMALL LETTER ZHE+switch 'z' '=' = '\x0437' -- CYRILLIC SMALL LETTER ZE+switch 'i' '=' = '\x0438' -- CYRILLIC SMALL LETTER I+switch 'j' '=' = '\x0439' -- CYRILLIC SMALL LETTER SHORT I+switch 'k' '=' = '\x043A' -- CYRILLIC SMALL LETTER KA+switch 'l' '=' = '\x043B' -- CYRILLIC SMALL LETTER EL+switch 'm' '=' = '\x043C' -- CYRILLIC SMALL LETTER EM+switch 'n' '=' = '\x043D' -- CYRILLIC SMALL LETTER EN+switch 'o' '=' = '\x043E' -- CYRILLIC SMALL LETTER O+switch 'p' '=' = '\x043F' -- CYRILLIC SMALL LETTER PE+switch 'r' '=' = '\x0440' -- CYRILLIC SMALL LETTER ER+switch 's' '=' = '\x0441' -- CYRILLIC SMALL LETTER ES+switch 't' '=' = '\x0442' -- CYRILLIC SMALL LETTER TE+switch 'u' '=' = '\x0443' -- CYRILLIC SMALL LETTER U+switch 'f' '=' = '\x0444' -- CYRILLIC SMALL LETTER EF+switch 'h' '=' = '\x0445' -- CYRILLIC SMALL LETTER HA+switch 'c' '=' = '\x0446' -- CYRILLIC SMALL LETTER TSE+switch 'c' '%' = '\x0447' -- CYRILLIC SMALL LETTER CHE+switch 's' '%' = '\x0448' -- CYRILLIC SMALL LETTER SHA+switch 's' 'c' = '\x0449' -- CYRILLIC SMALL LETTER SHCHA+switch '=' '\'' = '\x044A' -- CYRILLIC SMALL LETTER HARD SIGN+switch 'y' '=' = '\x044B' -- CYRILLIC SMALL LETTER YERU+switch '%' '\'' = '\x044C' -- CYRILLIC SMALL LETTER SOFT SIGN+switch 'j' 'e' = '\x044D' -- CYRILLIC SMALL LETTER E+switch 'j' 'u' = '\x044E' -- CYRILLIC SMALL LETTER YU+switch 'j' 'a' = '\x044F' -- CYRILLIC SMALL LETTER YA+switch 'i' 'o' = '\x0451' -- CYRILLIC SMALL LETTER IO+switch 'd' '%' = '\x0452' -- CYRILLIC SMALL LETTER DJE+switch 'g' '%' = '\x0453' -- CYRILLIC SMALL LETTER GJE+switch 'i' 'e' = '\x0454' -- CYRILLIC SMALL LETTER UKRAINIAN IE+switch 'd' 's' = '\x0455' -- CYRILLIC SMALL LETTER DZE+switch 'i' 'i' = '\x0456' -- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I+switch 'y' 'i' = '\x0457' -- CYRILLIC SMALL LETTER YI+switch 'j' '%' = '\x0458' -- CYRILLIC SMALL LETTER JE+switch 'l' 'j' = '\x0459' -- CYRILLIC SMALL LETTER LJE+switch 'n' 'j' = '\x045A' -- CYRILLIC SMALL LETTER NJE+switch 't' 's' = '\x045B' -- CYRILLIC SMALL LETTER TSHE+switch 'k' 'j' = '\x045C' -- CYRILLIC SMALL LETTER KJE+switch 'v' '%' = '\x045E' -- CYRILLIC SMALL LETTER SHORT U+switch 'd' 'z' = '\x045F' -- CYRILLIC SMALL LETTER DZHE+switch 'Y' '3' = '\x0462' -- CYRILLIC CAPITAL LETTER YAT+switch 'y' '3' = '\x0463' -- CYRILLIC SMALL LETTER YAT+switch 'O' '3' = '\x046A' -- CYRILLIC CAPITAL LETTER BIG YUS+switch 'o' '3' = '\x046B' -- CYRILLIC SMALL LETTER BIG YUS+switch 'F' '3' = '\x0472' -- CYRILLIC CAPITAL LETTER FITA+switch 'f' '3' = '\x0473' -- CYRILLIC SMALL LETTER FITA+switch 'V' '3' = '\x0474' -- CYRILLIC CAPITAL LETTER IZHITSA+switch 'v' '3' = '\x0475' -- CYRILLIC SMALL LETTER IZHITSA+switch 'C' '3' = '\x0480' -- CYRILLIC CAPITAL LETTER KOPPA+switch 'c' '3' = '\x0481' -- CYRILLIC SMALL LETTER KOPPA+switch 'G' '3' = '\x0490' -- CYRILLIC CAPITAL LETTER GHE WITH UPTURN+switch 'g' '3' = '\x0491' -- CYRILLIC SMALL LETTER GHE WITH UPTURN+switch 'A' '+' = '\x05D0' -- HEBREW LETTER ALEF+switch 'B' '+' = '\x05D1' -- HEBREW LETTER BET+switch 'G' '+' = '\x05D2' -- HEBREW LETTER GIMEL+switch 'D' '+' = '\x05D3' -- HEBREW LETTER DALET+switch 'H' '+' = '\x05D4' -- HEBREW LETTER HE+switch 'W' '+' = '\x05D5' -- HEBREW LETTER VAV+switch 'Z' '+' = '\x05D6' -- HEBREW LETTER ZAYIN+switch 'X' '+' = '\x05D7' -- HEBREW LETTER HET+switch 'T' 'j' = '\x05D8' -- HEBREW LETTER TET+switch 'J' '+' = '\x05D9' -- HEBREW LETTER YOD+switch 'K' '%' = '\x05DA' -- HEBREW LETTER FINAL KAF+switch 'K' '+' = '\x05DB' -- HEBREW LETTER KAF+switch 'L' '+' = '\x05DC' -- HEBREW LETTER LAMED+switch 'M' '%' = '\x05DD' -- HEBREW LETTER FINAL MEM+switch 'M' '+' = '\x05DE' -- HEBREW LETTER MEM+switch 'N' '%' = '\x05DF' -- HEBREW LETTER FINAL NUN `+switch 'N' '+' = '\x05E0' -- HEBREW LETTER NUN `+switch 'S' '+' = '\x05E1' -- HEBREW LETTER SAMEKH+switch 'E' '+' = '\x05E2' -- HEBREW LETTER AYIN+switch 'P' '%' = '\x05E3' -- HEBREW LETTER FINAL PE+switch 'P' '+' = '\x05E4' -- HEBREW LETTER PE+switch 'Z' 'j' = '\x05E5' -- HEBREW LETTER FINAL TSADI+switch 'Z' 'J' = '\x05E6' -- HEBREW LETTER TSADI+switch 'Q' '+' = '\x05E7' -- HEBREW LETTER QOF+switch 'R' '+' = '\x05E8' -- HEBREW LETTER RESH+switch 'S' 'h' = '\x05E9' -- HEBREW LETTER SHIN+switch 'T' '+' = '\x05EA' -- HEBREW LETTER TAV+switch ',' '+' = '\x060C' -- ARABIC COMMA+switch ';' '+' = '\x061B' -- ARABIC SEMICOLON+switch '?' '+' = '\x061F' -- ARABIC QUESTION MARK+switch 'H' '\'' = '\x0621' -- ARABIC LETTER HAMZA+switch 'a' 'M' = '\x0622' -- ARABIC LETTER ALEF WITH MADDA ABOVE+switch 'a' 'H' = '\x0623' -- ARABIC LETTER ALEF WITH HAMZA ABOVE+switch 'w' 'H' = '\x0624' -- ARABIC LETTER WAW WITH HAMZA ABOVE+switch 'a' 'h' = '\x0625' -- ARABIC LETTER ALEF WITH HAMZA BELOW+switch 'y' 'H' = '\x0626' -- ARABIC LETTER YEH WITH HAMZA ABOVE+switch 'a' '+' = '\x0627' -- ARABIC LETTER ALEF+switch 'b' '+' = '\x0628' -- ARABIC LETTER BEH+switch 't' 'm' = '\x0629' -- ARABIC LETTER TEH MARBUTA+switch 't' '+' = '\x062A' -- ARABIC LETTER TEH+switch 't' 'k' = '\x062B' -- ARABIC LETTER THEH+switch 'g' '+' = '\x062C' -- ARABIC LETTER JEEM+switch 'h' 'k' = '\x062D' -- ARABIC LETTER HAH+switch 'x' '+' = '\x062E' -- ARABIC LETTER KHAH+switch 'd' '+' = '\x062F' -- ARABIC LETTER DAL+switch 'd' 'k' = '\x0630' -- ARABIC LETTER THAL+switch 'r' '+' = '\x0631' -- ARABIC LETTER REH+switch 'z' '+' = '\x0632' -- ARABIC LETTER ZAIN+switch 's' '+' = '\x0633' -- ARABIC LETTER SEEN+switch 's' 'n' = '\x0634' -- ARABIC LETTER SHEEN+switch 'c' '+' = '\x0635' -- ARABIC LETTER SAD+switch 'd' 'd' = '\x0636' -- ARABIC LETTER DAD+switch 't' 'j' = '\x0637' -- ARABIC LETTER TAH+switch 'z' 'H' = '\x0638' -- ARABIC LETTER ZAH+switch 'e' '+' = '\x0639' -- ARABIC LETTER AIN+switch 'i' '+' = '\x063A' -- ARABIC LETTER GHAIN+switch '+' '+' = '\x0640' -- ARABIC TATWEEL+switch 'f' '+' = '\x0641' -- ARABIC LETTER FEH+switch 'q' '+' = '\x0642' -- ARABIC LETTER QAF+switch 'k' '+' = '\x0643' -- ARABIC LETTER KAF+switch 'l' '+' = '\x0644' -- ARABIC LETTER LAM+switch 'm' '+' = '\x0645' -- ARABIC LETTER MEEM+switch 'n' '+' = '\x0646' -- ARABIC LETTER NOON+switch 'h' '+' = '\x0647' -- ARABIC LETTER HEH+switch 'w' '+' = '\x0648' -- ARABIC LETTER WAW+switch 'j' '+' = '\x0649' -- ARABIC LETTER ALEF MAKSURA+switch 'y' '+' = '\x064A' -- ARABIC LETTER YEH+switch ':' '+' = '\x064B' -- ARABIC FATHATAN+switch '"' '+' = '\x064C' -- ARABIC DAMMATAN+switch '=' '+' = '\x064D' -- ARABIC KASRATAN+switch '/' '+' = '\x064E' -- ARABIC FATHA+switch '\'' '+' = '\x064F' -- ARABIC DAMMA+switch '1' '+' = '\x0650' -- ARABIC KASRA+switch '3' '+' = '\x0651' -- ARABIC SHADDA+switch '0' '+' = '\x0652' -- ARABIC SUKUN+switch 'a' 'S' = '\x0670' -- ARABIC LETTER SUPERSCRIPT ALEF+switch 'p' '+' = '\x067E' -- ARABIC LETTER PEH+switch 'v' '+' = '\x06A4' -- ARABIC LETTER VEH+switch 'g' 'f' = '\x06AF' -- ARABIC LETTER GAF+switch '0' 'a' = '\x06F0' -- EXTENDED ARABIC-INDIC DIGIT ZERO+switch '1' 'a' = '\x06F1' -- EXTENDED ARABIC-INDIC DIGIT ONE+switch '2' 'a' = '\x06F2' -- EXTENDED ARABIC-INDIC DIGIT TWO+switch '3' 'a' = '\x06F3' -- EXTENDED ARABIC-INDIC DIGIT THREE+switch '4' 'a' = '\x06F4' -- EXTENDED ARABIC-INDIC DIGIT FOUR+switch '5' 'a' = '\x06F5' -- EXTENDED ARABIC-INDIC DIGIT FIVE+switch '6' 'a' = '\x06F6' -- EXTENDED ARABIC-INDIC DIGIT SIX+switch '7' 'a' = '\x06F7' -- EXTENDED ARABIC-INDIC DIGIT SEVEN+switch '8' 'a' = '\x06F8' -- EXTENDED ARABIC-INDIC DIGIT EIGHT+switch '9' 'a' = '\x06F9' -- EXTENDED ARABIC-INDIC DIGIT NINE+switch 'B' '.' = '\x1E02' -- LATIN CAPITAL LETTER B WITH DOT ABOVE+switch 'b' '.' = '\x1E03' -- LATIN SMALL LETTER B WITH DOT ABOVE+switch 'B' '_' = '\x1E06' -- LATIN CAPITAL LETTER B WITH LINE BELOW+switch 'b' '_' = '\x1E07' -- LATIN SMALL LETTER B WITH LINE BELOW+switch 'D' '.' = '\x1E0A' -- LATIN CAPITAL LETTER D WITH DOT ABOVE+switch 'd' '.' = '\x1E0B' -- LATIN SMALL LETTER D WITH DOT ABOVE+switch 'D' '_' = '\x1E0E' -- LATIN CAPITAL LETTER D WITH LINE BELOW+switch 'd' '_' = '\x1E0F' -- LATIN SMALL LETTER D WITH LINE BELOW+switch 'D' ',' = '\x1E10' -- LATIN CAPITAL LETTER D WITH CEDILLA+switch 'd' ',' = '\x1E11' -- LATIN SMALL LETTER D WITH CEDILLA+switch 'F' '.' = '\x1E1E' -- LATIN CAPITAL LETTER F WITH DOT ABOVE+switch 'f' '.' = '\x1E1F' -- LATIN SMALL LETTER F WITH DOT ABOVE+switch 'G' '-' = '\x1E20' -- LATIN CAPITAL LETTER G WITH MACRON+switch 'g' '-' = '\x1E21' -- LATIN SMALL LETTER G WITH MACRON+switch 'H' '.' = '\x1E22' -- LATIN CAPITAL LETTER H WITH DOT ABOVE+switch 'h' '.' = '\x1E23' -- LATIN SMALL LETTER H WITH DOT ABOVE+switch 'H' ':' = '\x1E26' -- LATIN CAPITAL LETTER H WITH DIAERESIS+switch 'h' ':' = '\x1E27' -- LATIN SMALL LETTER H WITH DIAERESIS+switch 'H' ',' = '\x1E28' -- LATIN CAPITAL LETTER H WITH CEDILLA+switch 'h' ',' = '\x1E29' -- LATIN SMALL LETTER H WITH CEDILLA+switch 'K' '\'' = '\x1E30' -- LATIN CAPITAL LETTER K WITH ACUTE+switch 'k' '\'' = '\x1E31' -- LATIN SMALL LETTER K WITH ACUTE+switch 'K' '_' = '\x1E34' -- LATIN CAPITAL LETTER K WITH LINE BELOW+switch 'k' '_' = '\x1E35' -- LATIN SMALL LETTER K WITH LINE BELOW+switch 'L' '_' = '\x1E3A' -- LATIN CAPITAL LETTER L WITH LINE BELOW+switch 'l' '_' = '\x1E3B' -- LATIN SMALL LETTER L WITH LINE BELOW+switch 'M' '\'' = '\x1E3E' -- LATIN CAPITAL LETTER M WITH ACUTE+switch 'm' '\'' = '\x1E3F' -- LATIN SMALL LETTER M WITH ACUTE+switch 'M' '.' = '\x1E40' -- LATIN CAPITAL LETTER M WITH DOT ABOVE+switch 'm' '.' = '\x1E41' -- LATIN SMALL LETTER M WITH DOT ABOVE+switch 'N' '.' = '\x1E44' -- LATIN CAPITAL LETTER N WITH DOT ABOVE `+switch 'n' '.' = '\x1E45' -- LATIN SMALL LETTER N WITH DOT ABOVE `+switch 'N' '_' = '\x1E48' -- LATIN CAPITAL LETTER N WITH LINE BELOW `+switch 'n' '_' = '\x1E49' -- LATIN SMALL LETTER N WITH LINE BELOW `+switch 'P' '\'' = '\x1E54' -- LATIN CAPITAL LETTER P WITH ACUTE+switch 'p' '\'' = '\x1E55' -- LATIN SMALL LETTER P WITH ACUTE+switch 'P' '.' = '\x1E56' -- LATIN CAPITAL LETTER P WITH DOT ABOVE+switch 'p' '.' = '\x1E57' -- LATIN SMALL LETTER P WITH DOT ABOVE+switch 'R' '.' = '\x1E58' -- LATIN CAPITAL LETTER R WITH DOT ABOVE+switch 'r' '.' = '\x1E59' -- LATIN SMALL LETTER R WITH DOT ABOVE+switch 'R' '_' = '\x1E5E' -- LATIN CAPITAL LETTER R WITH LINE BELOW+switch 'r' '_' = '\x1E5F' -- LATIN SMALL LETTER R WITH LINE BELOW+switch 'S' '.' = '\x1E60' -- LATIN CAPITAL LETTER S WITH DOT ABOVE+switch 's' '.' = '\x1E61' -- LATIN SMALL LETTER S WITH DOT ABOVE+switch 'T' '.' = '\x1E6A' -- LATIN CAPITAL LETTER T WITH DOT ABOVE+switch 't' '.' = '\x1E6B' -- LATIN SMALL LETTER T WITH DOT ABOVE+switch 'T' '_' = '\x1E6E' -- LATIN CAPITAL LETTER T WITH LINE BELOW+switch 't' '_' = '\x1E6F' -- LATIN SMALL LETTER T WITH LINE BELOW+switch 'V' '?' = '\x1E7C' -- LATIN CAPITAL LETTER V WITH TILDE+switch 'v' '?' = '\x1E7D' -- LATIN SMALL LETTER V WITH TILDE+switch 'W' '!' = '\x1E80' -- LATIN CAPITAL LETTER W WITH GRAVE+switch 'w' '!' = '\x1E81' -- LATIN SMALL LETTER W WITH GRAVE+switch 'W' '\'' = '\x1E82' -- LATIN CAPITAL LETTER W WITH ACUTE+switch 'w' '\'' = '\x1E83' -- LATIN SMALL LETTER W WITH ACUTE+switch 'W' ':' = '\x1E84' -- LATIN CAPITAL LETTER W WITH DIAERESIS+switch 'w' ':' = '\x1E85' -- LATIN SMALL LETTER W WITH DIAERESIS+switch 'W' '.' = '\x1E86' -- LATIN CAPITAL LETTER W WITH DOT ABOVE+switch 'w' '.' = '\x1E87' -- LATIN SMALL LETTER W WITH DOT ABOVE+switch 'X' '.' = '\x1E8A' -- LATIN CAPITAL LETTER X WITH DOT ABOVE+switch 'x' '.' = '\x1E8B' -- LATIN SMALL LETTER X WITH DOT ABOVE+switch 'X' ':' = '\x1E8C' -- LATIN CAPITAL LETTER X WITH DIAERESIS+switch 'x' ':' = '\x1E8D' -- LATIN SMALL LETTER X WITH DIAERESIS+switch 'Y' '.' = '\x1E8E' -- LATIN CAPITAL LETTER Y WITH DOT ABOVE+switch 'y' '.' = '\x1E8F' -- LATIN SMALL LETTER Y WITH DOT ABOVE+switch 'Z' '>' = '\x1E90' -- LATIN CAPITAL LETTER Z WITH CIRCUMFLEX+switch 'z' '>' = '\x1E91' -- LATIN SMALL LETTER Z WITH CIRCUMFLEX+switch 'Z' '_' = '\x1E94' -- LATIN CAPITAL LETTER Z WITH LINE BELOW+switch 'z' '_' = '\x1E95' -- LATIN SMALL LETTER Z WITH LINE BELOW+switch 'h' '_' = '\x1E96' -- LATIN SMALL LETTER H WITH LINE BELOW+switch 't' ':' = '\x1E97' -- LATIN SMALL LETTER T WITH DIAERESIS+switch 'w' '0' = '\x1E98' -- LATIN SMALL LETTER W WITH RING ABOVE+switch 'y' '0' = '\x1E99' -- LATIN SMALL LETTER Y WITH RING ABOVE+switch 'A' '2' = '\x1EA2' -- LATIN CAPITAL LETTER A WITH HOOK ABOVE+switch 'a' '2' = '\x1EA3' -- LATIN SMALL LETTER A WITH HOOK ABOVE+switch 'E' '2' = '\x1EBA' -- LATIN CAPITAL LETTER E WITH HOOK ABOVE+switch 'e' '2' = '\x1EBB' -- LATIN SMALL LETTER E WITH HOOK ABOVE+switch 'E' '?' = '\x1EBC' -- LATIN CAPITAL LETTER E WITH TILDE+switch 'e' '?' = '\x1EBD' -- LATIN SMALL LETTER E WITH TILDE+switch 'I' '2' = '\x1EC8' -- LATIN CAPITAL LETTER I WITH HOOK ABOVE+switch 'i' '2' = '\x1EC9' -- LATIN SMALL LETTER I WITH HOOK ABOVE+switch 'O' '2' = '\x1ECE' -- LATIN CAPITAL LETTER O WITH HOOK ABOVE+switch 'o' '2' = '\x1ECF' -- LATIN SMALL LETTER O WITH HOOK ABOVE+switch 'U' '2' = '\x1EE6' -- LATIN CAPITAL LETTER U WITH HOOK ABOVE+switch 'u' '2' = '\x1EE7' -- LATIN SMALL LETTER U WITH HOOK ABOVE+switch 'Y' '!' = '\x1EF2' -- LATIN CAPITAL LETTER Y WITH GRAVE+switch 'y' '!' = '\x1EF3' -- LATIN SMALL LETTER Y WITH GRAVE+switch 'Y' '2' = '\x1EF6' -- LATIN CAPITAL LETTER Y WITH HOOK ABOVE+switch 'y' '2' = '\x1EF7' -- LATIN SMALL LETTER Y WITH HOOK ABOVE+switch 'Y' '?' = '\x1EF8' -- LATIN CAPITAL LETTER Y WITH TILDE+switch 'y' '?' = '\x1EF9' -- LATIN SMALL LETTER Y WITH TILDE+switch ';' '\'' = '\x1F00' -- GREEK SMALL LETTER ALPHA WITH PSILI+switch ',' '\'' = '\x1F01' -- GREEK SMALL LETTER ALPHA WITH DASIA+switch ';' '!' = '\x1F02' -- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA+switch ',' '!' = '\x1F03' -- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA+switch '?' ';' = '\x1F04' -- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA+switch '?' ',' = '\x1F05' -- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA+switch '!' ':' = '\x1F06' -- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI+switch '?' ':' = '\x1F07' -- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI+switch '1' 'N' = '\x2002' -- EN SPACE+switch '1' 'M' = '\x2003' -- EM SPACE+switch '3' 'M' = '\x2004' -- THREE-PER-EM SPACE+switch '4' 'M' = '\x2005' -- FOUR-PER-EM SPACE+switch '6' 'M' = '\x2006' -- SIX-PER-EM SPACE+switch '1' 'T' = '\x2009' -- THIN SPACE+switch '1' 'H' = '\x200A' -- HAIR SPACE+switch '-' '1' = '\x2010' -- HYPHEN+switch '-' 'N' = '\x2013' -- EN DASH `+switch '-' 'M' = '\x2014' -- EM DASH+switch '-' '3' = '\x2015' -- HORIZONTAL BAR+switch '!' '2' = '\x2016' -- DOUBLE VERTICAL LINE+switch '=' '2' = '\x2017' -- DOUBLE LOW LINE+switch '\'' '6' = '\x2018' -- LEFT SINGLE QUOTATION MARK+switch '\'' '9' = '\x2019' -- RIGHT SINGLE QUOTATION MARK+switch '.' '9' = '\x201A' -- SINGLE LOW-9 QUOTATION MARK+switch '9' '\'' = '\x201B' -- SINGLE HIGH-REVERSED-9 QUOTATION MARK+switch '"' '6' = '\x201C' -- LEFT DOUBLE QUOTATION MARK+switch '"' '9' = '\x201D' -- RIGHT DOUBLE QUOTATION MARK+switch ':' '9' = '\x201E' -- DOUBLE LOW-9 QUOTATION MARK+switch '9' '"' = '\x201F' -- DOUBLE HIGH-REVERSED-9 QUOTATION MARK+switch '/' '-' = '\x2020' -- DAGGER+switch '/' '=' = '\x2021' -- DOUBLE DAGGER+switch '.' '.' = '\x2025' -- TWO DOT LEADER+switch '%' '0' = '\x2030' -- PER MILLE SIGN+switch '1' '\'' = '\x2032' -- PRIME+switch '2' '\'' = '\x2033' -- DOUBLE PRIME+switch '3' '\'' = '\x2034' -- TRIPLE PRIME+switch '1' '"' = '\x2035' -- REVERSED PRIME+switch '2' '"' = '\x2036' -- REVERSED DOUBLE PRIME+switch '3' '"' = '\x2037' -- REVERSED TRIPLE PRIME+switch 'C' 'a' = '\x2038' -- CARET+switch '<' '1' = '\x2039' -- SINGLE LEFT-POINTING ANGLE QUOTATION MARK+switch '>' '1' = '\x203A' -- SINGLE RIGHT-POINTING ANGLE QUOTATION MARK+switch ':' 'X' = '\x203B' -- REFERENCE MARK+switch '\'' '-' = '\x203E' -- OVERLINE+switch '/' 'f' = '\x2044' -- FRACTION SLASH+switch '0' 'S' = '\x2070' -- SUPERSCRIPT ZERO+switch '4' 'S' = '\x2074' -- SUPERSCRIPT FOUR+switch '5' 'S' = '\x2075' -- SUPERSCRIPT FIVE+switch '6' 'S' = '\x2076' -- SUPERSCRIPT SIX+switch '7' 'S' = '\x2077' -- SUPERSCRIPT SEVEN+switch '8' 'S' = '\x2078' -- SUPERSCRIPT EIGHT+switch '9' 'S' = '\x2079' -- SUPERSCRIPT NINE+switch '+' 'S' = '\x207A' -- SUPERSCRIPT PLUS SIGN+switch '-' 'S' = '\x207B' -- SUPERSCRIPT MINUS+switch '=' 'S' = '\x207C' -- SUPERSCRIPT EQUALS SIGN+switch '(' 'S' = '\x207D' -- SUPERSCRIPT LEFT PARENTHESIS+switch ')' 'S' = '\x207E' -- SUPERSCRIPT RIGHT PARENTHESIS+switch 'n' 'S' = '\x207F' -- SUPERSCRIPT LATIN SMALL LETTER N `+switch '0' 's' = '\x2080' -- SUBSCRIPT ZERO+switch '1' 's' = '\x2081' -- SUBSCRIPT ONE+switch '2' 's' = '\x2082' -- SUBSCRIPT TWO+switch '3' 's' = '\x2083' -- SUBSCRIPT THREE+switch '4' 's' = '\x2084' -- SUBSCRIPT FOUR+switch '5' 's' = '\x2085' -- SUBSCRIPT FIVE+switch '6' 's' = '\x2086' -- SUBSCRIPT SIX+switch '7' 's' = '\x2087' -- SUBSCRIPT SEVEN+switch '8' 's' = '\x2088' -- SUBSCRIPT EIGHT+switch '9' 's' = '\x2089' -- SUBSCRIPT NINE+switch '+' 's' = '\x208A' -- SUBSCRIPT PLUS SIGN+switch '-' 's' = '\x208B' -- SUBSCRIPT MINUS+switch '=' 's' = '\x208C' -- SUBSCRIPT EQUALS SIGN+switch '(' 's' = '\x208D' -- SUBSCRIPT LEFT PARENTHESIS+switch ')' 's' = '\x208E' -- SUBSCRIPT RIGHT PARENTHESIS+switch 'L' 'i' = '\x20A4' -- LIRA SIGN+switch 'P' 't' = '\x20A7' -- PESETA SIGN+switch 'W' '=' = '\x20A9' -- WON SIGN+switch 'E' 'u' = '\x20AC' -- EURO SIGN+switch 'o' 'C' = '\x2103' -- DEGREE CELSIUS+switch 'c' 'o' = '\x2105' -- CARE OF+switch 'o' 'F' = '\x2109' -- DEGREE FAHRENHEIT+switch 'N' '0' = '\x2116' -- NUMERO SIGN+switch 'P' 'O' = '\x2117' -- SOUND RECORDING COPYRIGHT+switch 'R' 'x' = '\x211E' -- PRESCRIPTION TAKE+switch 'S' 'M' = '\x2120' -- SERVICE MARK+switch 'T' 'M' = '\x2122' -- TRADE MARK SIGN+switch 'O' 'm' = '\x2126' -- OHM SIGN+switch 'A' 'O' = '\x212B' -- ANGSTROM SIGN+switch '1' '3' = '\x2153' -- VULGAR FRACTION ONE THIRD+switch '2' '3' = '\x2154' -- VULGAR FRACTION TWO THIRDS+switch '1' '5' = '\x2155' -- VULGAR FRACTION ONE FIFTH+switch '2' '5' = '\x2156' -- VULGAR FRACTION TWO FIFTHS+switch '3' '5' = '\x2157' -- VULGAR FRACTION THREE FIFTHS+switch '4' '5' = '\x2158' -- VULGAR FRACTION FOUR FIFTHS+switch '1' '6' = '\x2159' -- VULGAR FRACTION ONE SIXTH+switch '5' '6' = '\x215A' -- VULGAR FRACTION FIVE SIXTHS+switch '1' '8' = '\x215B' -- VULGAR FRACTION ONE EIGHTH+switch '3' '8' = '\x215C' -- VULGAR FRACTION THREE EIGHTHS+switch '5' '8' = '\x215D' -- VULGAR FRACTION FIVE EIGHTHS+switch '7' '8' = '\x215E' -- VULGAR FRACTION SEVEN EIGHTHS+switch '1' 'R' = '\x2160' -- ROMAN NUMERAL ONE+switch '2' 'R' = '\x2161' -- ROMAN NUMERAL TWO+switch '3' 'R' = '\x2162' -- ROMAN NUMERAL THREE+switch '4' 'R' = '\x2163' -- ROMAN NUMERAL FOUR+switch '5' 'R' = '\x2164' -- ROMAN NUMERAL FIVE+switch '6' 'R' = '\x2165' -- ROMAN NUMERAL SIX+switch '7' 'R' = '\x2166' -- ROMAN NUMERAL SEVEN+switch '8' 'R' = '\x2167' -- ROMAN NUMERAL EIGHT+switch '9' 'R' = '\x2168' -- ROMAN NUMERAL NINE+switch 'a' 'R' = '\x2169' -- ROMAN NUMERAL TEN+switch 'b' 'R' = '\x216A' -- ROMAN NUMERAL ELEVEN+switch 'c' 'R' = '\x216B' -- ROMAN NUMERAL TWELVE+switch '1' 'r' = '\x2170' -- SMALL ROMAN NUMERAL ONE+switch '2' 'r' = '\x2171' -- SMALL ROMAN NUMERAL TWO+switch '3' 'r' = '\x2172' -- SMALL ROMAN NUMERAL THREE+switch '4' 'r' = '\x2173' -- SMALL ROMAN NUMERAL FOUR+switch '5' 'r' = '\x2174' -- SMALL ROMAN NUMERAL FIVE+switch '6' 'r' = '\x2175' -- SMALL ROMAN NUMERAL SIX+switch '7' 'r' = '\x2176' -- SMALL ROMAN NUMERAL SEVEN+switch '8' 'r' = '\x2177' -- SMALL ROMAN NUMERAL EIGHT+switch '9' 'r' = '\x2178' -- SMALL ROMAN NUMERAL NINE+switch 'a' 'r' = '\x2179' -- SMALL ROMAN NUMERAL TEN+switch 'b' 'r' = '\x217A' -- SMALL ROMAN NUMERAL ELEVEN+switch 'c' 'r' = '\x217B' -- SMALL ROMAN NUMERAL TWELVE+switch '<' '-' = '\x2190' -- LEFTWARDS ARROW+switch '-' '!' = '\x2191' -- UPWARDS ARROW+switch '-' '>' = '\x2192' -- RIGHTWARDS ARROW+switch '-' 'v' = '\x2193' -- DOWNWARDS ARROW+switch '<' '>' = '\x2194' -- LEFT RIGHT ARROW+switch 'U' 'D' = '\x2195' -- UP DOWN ARROW+switch '<' '=' = '\x21D0' -- LEFTWARDS DOUBLE ARROW+switch '=' '>' = '\x21D2' -- RIGHTWARDS DOUBLE ARROW+switch '=' '=' = '\x21D4' -- LEFT RIGHT DOUBLE ARROW+switch 'F' 'A' = '\x2200' -- FOR ALL+switch 'd' 'P' = '\x2202' -- PARTIAL DIFFERENTIAL+switch 'T' 'E' = '\x2203' -- THERE EXISTS+switch '/' '0' = '\x2205' -- EMPTY SET+switch 'D' 'E' = '\x2206' -- INCREMENT+switch 'N' 'B' = '\x2207' -- NABLA+switch '(' '-' = '\x2208' -- ELEMENT OF+switch '-' ')' = '\x220B' -- CONTAINS AS MEMBER+switch '*' 'P' = '\x220F' -- N-ARY PRODUCT `+switch '+' 'Z' = '\x2211' -- N-ARY SUMMATION `+switch '-' '2' = '\x2212' -- MINUS SIGN+switch '-' '+' = '\x2213' -- MINUS-OR-PLUS SIGN+switch '*' '-' = '\x2217' -- ASTERISK OPERATOR+switch 'O' 'b' = '\x2218' -- RING OPERATOR+switch 'S' 'b' = '\x2219' -- BULLET OPERATOR+switch 'R' 'T' = '\x221A' -- SQUARE ROOT+switch '0' '(' = '\x221D' -- PROPORTIONAL TO+switch '0' '0' = '\x221E' -- INFINITY+switch '-' 'L' = '\x221F' -- RIGHT ANGLE+switch '-' 'V' = '\x2220' -- ANGLE+switch 'P' 'P' = '\x2225' -- PARALLEL TO+switch 'A' 'N' = '\x2227' -- LOGICAL AND+switch 'O' 'R' = '\x2228' -- LOGICAL OR+switch '(' 'U' = '\x2229' -- INTERSECTION+switch ')' 'U' = '\x222A' -- UNION+switch 'I' 'n' = '\x222B' -- INTEGRAL+switch 'D' 'I' = '\x222C' -- DOUBLE INTEGRAL+switch 'I' 'o' = '\x222E' -- CONTOUR INTEGRAL+switch '.' ':' = '\x2234' -- THEREFORE+switch ':' '.' = '\x2235' -- BECAUSE+switch ':' 'R' = '\x2236' -- RATIO+switch ':' ':' = '\x2237' -- PROPORTION+switch '?' '1' = '\x223C' -- TILDE OPERATOR+switch 'C' 'G' = '\x223E' -- INVERTED LAZY S+switch '?' '-' = '\x2243' -- ASYMPTOTICALLY EQUAL TO+switch '?' '=' = '\x2245' -- APPROXIMATELY EQUAL TO+switch '?' '2' = '\x2248' -- ALMOST EQUAL TO+switch '=' '?' = '\x224C' -- ALL EQUAL TO+switch 'H' 'I' = '\x2253' -- IMAGE OF OR APPROXIMATELY EQUAL TO+switch '!' '=' = '\x2260' -- NOT EQUAL TO+switch '=' '3' = '\x2261' -- IDENTICAL TO+switch '=' '<' = '\x2264' -- LESS-THAN OR EQUAL TO+switch '>' '=' = '\x2265' -- GREATER-THAN OR EQUAL TO+switch '<' '*' = '\x226A' -- MUCH LESS-THAN+switch '*' '>' = '\x226B' -- MUCH GREATER-THAN+switch '!' '<' = '\x226E' -- NOT LESS-THAN+switch '!' '>' = '\x226F' -- NOT GREATER-THAN+switch '(' 'C' = '\x2282' -- SUBSET OF+switch ')' 'C' = '\x2283' -- SUPERSET OF+switch '(' '_' = '\x2286' -- SUBSET OF OR EQUAL TO+switch ')' '_' = '\x2287' -- SUPERSET OF OR EQUAL TO+switch '0' '.' = '\x2299' -- CIRCLED DOT OPERATOR+switch '0' '2' = '\x229A' -- CIRCLED RING OPERATOR+switch '-' 'T' = '\x22A5' -- UP TACK+switch '.' 'P' = '\x22C5' -- DOT OPERATOR+switch ':' '3' = '\x22EE' -- VERTICAL ELLIPSIS+switch '.' '3' = '\x22EF' -- MIDLINE HORIZONTAL ELLIPSIS+switch 'E' 'h' = '\x2302' -- HOUSE+switch '<' '7' = '\x2308' -- LEFT CEILING+switch '>' '7' = '\x2309' -- RIGHT CEILING+switch '7' '<' = '\x230A' -- LEFT FLOOR+switch '7' '>' = '\x230B' -- RIGHT FLOOR+switch 'N' 'I' = '\x2310' -- REVERSED NOT SIGN+switch '(' 'A' = '\x2312' -- ARC+switch 'T' 'R' = '\x2315' -- TELEPHONE RECORDER+switch 'I' 'u' = '\x2320' -- TOP HALF INTEGRAL+switch 'I' 'l' = '\x2321' -- BOTTOM HALF INTEGRAL+switch '<' '/' = '\x2329' -- LEFT-POINTING ANGLE BRACKET+switch '/' '>' = '\x232A' -- RIGHT-POINTING ANGLE BRACKET+switch 'V' 's' = '\x2423' -- OPEN BOX+switch '1' 'h' = '\x2440' -- OCR HOOK+switch '3' 'h' = '\x2441' -- OCR CHAIR+switch '2' 'h' = '\x2442' -- OCR FORK+switch '4' 'h' = '\x2443' -- OCR INVERTED FORK+switch '1' 'j' = '\x2446' -- OCR BRANCH BANK IDENTIFICATION+switch '2' 'j' = '\x2447' -- OCR AMOUNT OF CHECK+switch '3' 'j' = '\x2448' -- OCR DASH+switch '4' 'j' = '\x2449' -- OCR CUSTOMER ACCOUNT NUMBER+switch '1' '.' = '\x2488' -- DIGIT ONE FULL STOP+switch '2' '.' = '\x2489' -- DIGIT TWO FULL STOP+switch '3' '.' = '\x248A' -- DIGIT THREE FULL STOP+switch '4' '.' = '\x248B' -- DIGIT FOUR FULL STOP+switch '5' '.' = '\x248C' -- DIGIT FIVE FULL STOP+switch '6' '.' = '\x248D' -- DIGIT SIX FULL STOP+switch '7' '.' = '\x248E' -- DIGIT SEVEN FULL STOP+switch '8' '.' = '\x248F' -- DIGIT EIGHT FULL STOP+switch '9' '.' = '\x2490' -- DIGIT NINE FULL STOP+switch 'h' 'h' = '\x2500' -- BOX DRAWINGS LIGHT HORIZONTAL+switch 'H' 'H' = '\x2501' -- BOX DRAWINGS HEAVY HORIZONTAL+switch 'v' 'v' = '\x2502' -- BOX DRAWINGS LIGHT VERTICAL+switch 'V' 'V' = '\x2503' -- BOX DRAWINGS HEAVY VERTICAL+switch '3' '-' = '\x2504' -- BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL+switch '3' '_' = '\x2505' -- BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL+switch '3' '!' = '\x2506' -- BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL+switch '3' '/' = '\x2507' -- BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL+switch '4' '-' = '\x2508' -- BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL+switch '4' '_' = '\x2509' -- BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL+switch '4' '!' = '\x250A' -- BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL+switch '4' '/' = '\x250B' -- BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL+switch 'd' 'r' = '\x250C' -- BOX DRAWINGS LIGHT DOWN AND RIGHT+switch 'd' 'R' = '\x250D' -- BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY+switch 'D' 'r' = '\x250E' -- BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT+switch 'D' 'R' = '\x250F' -- BOX DRAWINGS HEAVY DOWN AND RIGHT+switch 'd' 'l' = '\x2510' -- BOX DRAWINGS LIGHT DOWN AND LEFT+switch 'd' 'L' = '\x2511' -- BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY+switch 'D' 'l' = '\x2512' -- BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT+switch 'L' 'D' = '\x2513' -- BOX DRAWINGS HEAVY DOWN AND LEFT+switch 'u' 'r' = '\x2514' -- BOX DRAWINGS LIGHT UP AND RIGHT+switch 'u' 'R' = '\x2515' -- BOX DRAWINGS UP LIGHT AND RIGHT HEAVY+switch 'U' 'r' = '\x2516' -- BOX DRAWINGS UP HEAVY AND RIGHT LIGHT+switch 'U' 'R' = '\x2517' -- BOX DRAWINGS HEAVY UP AND RIGHT+switch 'u' 'l' = '\x2518' -- BOX VOICED SOUND MARKDRAWINGS LIGHT UP AND LEFT+switch 'u' 'L' = '\x2519' -- BOX DRAWINGS UP LIGHT AND LEFT HEAVY+switch 'U' 'l' = '\x251A' -- BOX DRAWINGS UP HEAVY AND LEFT LIGHT+switch 'U' 'L' = '\x251B' -- BOX DRAWINGS HEAVY UP AND LEFT+switch 'v' 'r' = '\x251C' -- BOX DRAWINGS LIGHT VERTICAL AND RIGHT+switch 'v' 'R' = '\x251D' -- BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY+switch 'V' 'r' = '\x2520' -- BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT+switch 'V' 'R' = '\x2523' -- BOX DRAWINGS HEAVY VERTICAL AND RIGHT+switch 'v' 'l' = '\x2524' -- BOX DRAWINGS LIGHT VERTICAL AND LEFT+switch 'v' 'L' = '\x2525' -- BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY+switch 'V' 'l' = '\x2528' -- BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT+switch 'V' 'L' = '\x252B' -- BOX DRAWINGS HEAVY VERTICAL AND LEFT+switch 'd' 'h' = '\x252C' -- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL+switch 'd' 'H' = '\x252F' -- BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY+switch 'D' 'h' = '\x2530' -- BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT+switch 'D' 'H' = '\x2533' -- BOX DRAWINGS HEAVY DOWN AND HORIZONTAL+switch 'u' 'h' = '\x2534' -- BOX DRAWINGS LIGHT UP AND HORIZONTAL+switch 'u' 'H' = '\x2537' -- BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY+switch 'U' 'h' = '\x2538' -- BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT+switch 'U' 'H' = '\x253B' -- BOX DRAWINGS HEAVY UP AND HORIZONTAL+switch 'v' 'h' = '\x253C' -- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL+switch 'v' 'H' = '\x253F' -- BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY+switch 'V' 'h' = '\x2542' -- BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT+switch 'V' 'H' = '\x254B' -- BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL+switch 'F' 'D' = '\x2571' -- BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT+switch 'B' 'D' = '\x2572' -- BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT+switch 'T' 'B' = '\x2580' -- UPPER HALF BLOCK+switch 'L' 'B' = '\x2584' -- LOWER HALF BLOCK+switch 'F' 'B' = '\x2588' -- FULL BLOCK+switch 'l' 'B' = '\x258C' -- LEFT HALF BLOCK+switch 'R' 'B' = '\x2590' -- RIGHT HALF BLOCK+switch '.' 'S' = '\x2591' -- LIGHT SHADE+switch ':' 'S' = '\x2592' -- MEDIUM SHADE+switch '?' 'S' = '\x2593' -- DARK SHADE+switch 'f' 'S' = '\x25A0' -- BLACK SQUARE+switch 'O' 'S' = '\x25A1' -- WHITE SQUARE+switch 'R' 'O' = '\x25A2' -- WHITE SQUARE WITH ROUNDED CORNERS+switch 'R' 'r' = '\x25A3' -- WHITE SQUARE CONTAINING BLACK SMALL SQUARE+switch 'R' 'F' = '\x25A4' -- SQUARE WITH HORIZONTAL FILL+switch 'R' 'Y' = '\x25A5' -- SQUARE WITH VERTICAL FILL+switch 'R' 'H' = '\x25A6' -- SQUARE WITH ORTHOGONAL CROSSHATCH FILL+switch 'R' 'Z' = '\x25A7' -- SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL+switch 'R' 'K' = '\x25A8' -- SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL+switch 'R' 'X' = '\x25A9' -- SQUARE WITH DIAGONAL CROSSHATCH FILL+switch 's' 'B' = '\x25AA' -- BLACK SMALL SQUARE+switch 'S' 'R' = '\x25AC' -- BLACK RECTANGLE+switch 'O' 'r' = '\x25AD' -- WHITE RECTANGLE+switch 'U' 'T' = '\x25B2' -- BLACK UP-POINTING TRIANGLE+switch 'u' 'T' = '\x25B3' -- WHITE UP-POINTING TRIANGLE+switch 'P' 'R' = '\x25B6' -- BLACK RIGHT-POINTING TRIANGLE+switch 'T' 'r' = '\x25B7' -- WHITE RIGHT-POINTING TRIANGLE+switch 'D' 't' = '\x25BC' -- BLACK DOWN-POINTING TRIANGLE+switch 'd' 'T' = '\x25BD' -- WHITE DOWN-POINTING TRIANGLE+switch 'P' 'L' = '\x25C0' -- BLACK LEFT-POINTING TRIANGLE+switch 'T' 'l' = '\x25C1' -- WHITE LEFT-POINTING TRIANGLE+switch 'D' 'b' = '\x25C6' -- BLACK DIAMOND+switch 'D' 'w' = '\x25C7' -- WHITE DIAMOND+switch 'L' 'Z' = '\x25CA' -- LOZENGE+switch '0' 'm' = '\x25CB' -- WHITE CIRCLE+switch '0' 'o' = '\x25CE' -- BULLSEYE+switch '0' 'M' = '\x25CF' -- BLACK CIRCLE+switch '0' 'L' = '\x25D0' -- CIRCLE WITH LEFT HALF BLACK+switch '0' 'R' = '\x25D1' -- CIRCLE WITH RIGHT HALF BLACK+switch 'S' 'n' = '\x25D8' -- INVERSE BULLET+switch 'I' 'c' = '\x25D9' -- INVERSE WHITE CIRCLE+switch 'F' 'd' = '\x25E2' -- BLACK LOWER RIGHT TRIANGLE+switch 'B' 'd' = '\x25E3' -- BLACK LOWER LEFT TRIANGLE+switch '*' '2' = '\x2605' -- BLACK STAR+switch '*' '1' = '\x2606' -- WHITE STAR+switch '<' 'H' = '\x261C' -- WHITE LEFT POINTING INDEX+switch '>' 'H' = '\x261E' -- WHITE RIGHT POINTING INDEX+switch '0' 'u' = '\x263A' -- WHITE SMILING FACE+switch '0' 'U' = '\x263B' -- BLACK SMILING FACE+switch 'S' 'U' = '\x263C' -- WHITE SUN WITH RAYS+switch 'F' 'm' = '\x2640' -- FEMALE SIGN+switch 'M' 'l' = '\x2642' -- MALE SIGN+switch 'c' 'S' = '\x2660' -- BLACK SPADE SUIT+switch 'c' 'H' = '\x2661' -- WHITE HEART SUIT+switch 'c' 'D' = '\x2662' -- WHITE DIAMOND SUIT+switch 'c' 'C' = '\x2663' -- BLACK CLUB SUIT+switch 'M' 'd' = '\x2669' -- QUARTER NOTE `+switch 'M' '8' = '\x266A' -- EIGHTH NOTE `+switch 'M' '2' = '\x266B' -- BEAMED EIGHTH NOTES+switch 'M' 'b' = '\x266D' -- MUSIC FLAT SIGN+switch 'M' 'x' = '\x266E' -- MUSIC NATURAL SIGN+switch 'M' 'X' = '\x266F' -- MUSIC SHARP SIGN+switch 'O' 'K' = '\x2713' -- CHECK MARK+switch 'X' 'X' = '\x2717' -- BALLOT X+switch '-' 'X' = '\x2720' -- MALTESE CROSS+switch 'I' 'S' = '\x3000' -- IDEOGRAPHIC SPACE+switch ',' '_' = '\x3001' -- IDEOGRAPHIC COMMA+switch '.' '_' = '\x3002' -- IDEOGRAPHIC FULL STOP+switch '+' '"' = '\x3003' -- DITTO MARK+switch '+' '_' = '\x3004' -- JAPANESE INDUSTRIAL STANDARD SYMBOL+switch '*' '_' = '\x3005' -- IDEOGRAPHIC ITERATION MARK+switch ';' '_' = '\x3006' -- IDEOGRAPHIC CLOSING MARK+switch '0' '_' = '\x3007' -- IDEOGRAPHIC NUMBER ZERO+switch '<' '+' = '\x300A' -- LEFT DOUBLE ANGLE BRACKET+switch '>' '+' = '\x300B' -- RIGHT DOUBLE ANGLE BRACKET+switch '<' '\'' = '\x300C' -- LEFT CORNER BRACKET+switch '>' '\'' = '\x300D' -- RIGHT CORNER BRACKET+switch '<' '"' = '\x300E' -- LEFT WHITE CORNER BRACKET+switch '>' '"' = '\x300F' -- RIGHT WHITE CORNER BRACKET+switch '(' '"' = '\x3010' -- LEFT BLACK LENTICULAR BRACKET+switch ')' '"' = '\x3011' -- RIGHT BLACK LENTICULAR BRACKET+switch '=' 'T' = '\x3012' -- POSTAL MARK+switch '=' '_' = '\x3013' -- GETA MARK+switch '(' '\'' = '\x3014' -- LEFT TORTOISE SHELL BRACKET+switch ')' '\'' = '\x3015' -- RIGHT TORTOISE SHELL BRACKET+switch '(' 'I' = '\x3016' -- LEFT WHITE LENTICULAR BRACKET+switch ')' 'I' = '\x3017' -- RIGHT WHITE LENTICULAR BRACKET+switch '-' '?' = '\x301C' -- WAVE DASH+switch 'A' '5' = '\x3041' -- HIRAGANA LETTER SMALL A+switch 'a' '5' = '\x3042' -- HIRAGANA LETTER A+switch 'I' '5' = '\x3043' -- HIRAGANA LETTER SMALL I+switch 'i' '5' = '\x3044' -- HIRAGANA LETTER I+switch 'U' '5' = '\x3045' -- HIRAGANA LETTER SMALL U+switch 'u' '5' = '\x3046' -- HIRAGANA LETTER U+switch 'E' '5' = '\x3047' -- HIRAGANA LETTER SMALL E+switch 'e' '5' = '\x3048' -- HIRAGANA LETTER E+switch 'O' '5' = '\x3049' -- HIRAGANA LETTER SMALL O+switch 'o' '5' = '\x304A' -- HIRAGANA LETTER O+switch 'k' 'a' = '\x304B' -- HIRAGANA LETTER KA+switch 'g' 'a' = '\x304C' -- HIRAGANA LETTER GA+switch 'k' 'i' = '\x304D' -- HIRAGANA LETTER KI+switch 'g' 'i' = '\x304E' -- HIRAGANA LETTER GI+switch 'k' 'u' = '\x304F' -- HIRAGANA LETTER KU+switch 'g' 'u' = '\x3050' -- HIRAGANA LETTER GU+switch 'k' 'e' = '\x3051' -- HIRAGANA LETTER KE+switch 'g' 'e' = '\x3052' -- HIRAGANA LETTER GE+switch 'k' 'o' = '\x3053' -- HIRAGANA LETTER KO+switch 'g' 'o' = '\x3054' -- HIRAGANA LETTER GO+switch 's' 'a' = '\x3055' -- HIRAGANA LETTER SA+switch 'z' 'a' = '\x3056' -- HIRAGANA LETTER ZA+switch 's' 'i' = '\x3057' -- HIRAGANA LETTER SI+switch 'z' 'i' = '\x3058' -- HIRAGANA LETTER ZI+switch 's' 'u' = '\x3059' -- HIRAGANA LETTER SU+switch 'z' 'u' = '\x305A' -- HIRAGANA LETTER ZU+switch 's' 'e' = '\x305B' -- HIRAGANA LETTER SE+switch 'z' 'e' = '\x305C' -- HIRAGANA LETTER ZE+switch 's' 'o' = '\x305D' -- HIRAGANA LETTER SO+switch 'z' 'o' = '\x305E' -- HIRAGANA LETTER ZO+switch 't' 'a' = '\x305F' -- HIRAGANA LETTER TA+switch 'd' 'a' = '\x3060' -- HIRAGANA LETTER DA+switch 't' 'i' = '\x3061' -- HIRAGANA LETTER TI+switch 'd' 'i' = '\x3062' -- HIRAGANA LETTER DI+switch 't' 'U' = '\x3063' -- HIRAGANA LETTER SMALL TU+switch 't' 'u' = '\x3064' -- HIRAGANA LETTER TU+switch 'd' 'u' = '\x3065' -- HIRAGANA LETTER DU+switch 't' 'e' = '\x3066' -- HIRAGANA LETTER TE+switch 'd' 'e' = '\x3067' -- HIRAGANA LETTER DE+switch 't' 'o' = '\x3068' -- HIRAGANA LETTER TO+switch 'd' 'o' = '\x3069' -- HIRAGANA LETTER DO+switch 'n' 'a' = '\x306A' -- HIRAGANA LETTER NA+switch 'n' 'i' = '\x306B' -- HIRAGANA LETTER NI+switch 'n' 'u' = '\x306C' -- HIRAGANA LETTER NU+switch 'n' 'e' = '\x306D' -- HIRAGANA LETTER NE+switch 'n' 'o' = '\x306E' -- HIRAGANA LETTER NO+switch 'h' 'a' = '\x306F' -- HIRAGANA LETTER HA+switch 'b' 'a' = '\x3070' -- HIRAGANA LETTER BA+switch 'p' 'a' = '\x3071' -- HIRAGANA LETTER PA+switch 'h' 'i' = '\x3072' -- HIRAGANA LETTER HI+switch 'b' 'i' = '\x3073' -- HIRAGANA LETTER BI+switch 'p' 'i' = '\x3074' -- HIRAGANA LETTER PI+switch 'h' 'u' = '\x3075' -- HIRAGANA LETTER HU+switch 'b' 'u' = '\x3076' -- HIRAGANA LETTER BU+switch 'p' 'u' = '\x3077' -- HIRAGANA LETTER PU+switch 'h' 'e' = '\x3078' -- HIRAGANA LETTER HE+switch 'b' 'e' = '\x3079' -- HIRAGANA LETTER BE+switch 'p' 'e' = '\x307A' -- HIRAGANA LETTER PE+switch 'h' 'o' = '\x307B' -- HIRAGANA LETTER HO+switch 'b' 'o' = '\x307C' -- HIRAGANA LETTER BO+switch 'p' 'o' = '\x307D' -- HIRAGANA LETTER PO+switch 'm' 'a' = '\x307E' -- HIRAGANA LETTER MA+switch 'm' 'i' = '\x307F' -- HIRAGANA LETTER MI+switch 'm' 'u' = '\x3080' -- HIRAGANA LETTER MU+switch 'm' 'e' = '\x3081' -- HIRAGANA LETTER ME+switch 'm' 'o' = '\x3082' -- HIRAGANA LETTER MO+switch 'y' 'A' = '\x3083' -- HIRAGANA LETTER SMALL YA+switch 'y' 'a' = '\x3084' -- HIRAGANA LETTER YA+switch 'y' 'U' = '\x3085' -- HIRAGANA LETTER SMALL YU+switch 'y' 'u' = '\x3086' -- HIRAGANA LETTER YU+switch 'y' 'O' = '\x3087' -- HIRAGANA LETTER SMALL YO+switch 'y' 'o' = '\x3088' -- HIRAGANA LETTER YO+switch 'r' 'a' = '\x3089' -- HIRAGANA LETTER RA+switch 'r' 'i' = '\x308A' -- HIRAGANA LETTER RI+switch 'r' 'u' = '\x308B' -- HIRAGANA LETTER RU+switch 'r' 'e' = '\x308C' -- HIRAGANA LETTER RE+switch 'r' 'o' = '\x308D' -- HIRAGANA LETTER RO+switch 'w' 'A' = '\x308E' -- HIRAGANA LETTER SMALL WA+switch 'w' 'a' = '\x308F' -- HIRAGANA LETTER WA+switch 'w' 'i' = '\x3090' -- HIRAGANA LETTER WI+switch 'w' 'e' = '\x3091' -- HIRAGANA LETTER WE+switch 'w' 'o' = '\x3092' -- HIRAGANA LETTER WO+switch 'n' '5' = '\x3093' -- HIRAGANA LETTER N `+switch 'v' 'u' = '\x3094' -- HIRAGANA LETTER VU+switch '"' '5' = '\x309B' -- KATAKANA-HIRAGANA VOICED SOUND MARK+switch '0' '5' = '\x309C' -- KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK+switch '*' '5' = '\x309D' -- HIRAGANA ITERATION MARK+switch '+' '5' = '\x309E' -- HIRAGANA VOICED ITERATION MARK+switch 'a' '6' = '\x30A1' -- KATAKANA LETTER SMALL A+switch 'A' '6' = '\x30A2' -- KATAKANA LETTER A+switch 'i' '6' = '\x30A3' -- KATAKANA LETTER SMALL I+switch 'I' '6' = '\x30A4' -- KATAKANA LETTER I+switch 'u' '6' = '\x30A5' -- KATAKANA LETTER SMALL U+switch 'U' '6' = '\x30A6' -- KATAKANA LETTER U+switch 'e' '6' = '\x30A7' -- KATAKANA LETTER SMALL E+switch 'E' '6' = '\x30A8' -- KATAKANA LETTER E+switch 'o' '6' = '\x30A9' -- KATAKANA LETTER SMALL O+switch 'O' '6' = '\x30AA' -- KATAKANA LETTER O+switch 'K' 'a' = '\x30AB' -- KATAKANA LETTER KA+switch 'G' 'a' = '\x30AC' -- KATAKANA LETTER GA+switch 'K' 'i' = '\x30AD' -- KATAKANA LETTER KI+switch 'G' 'i' = '\x30AE' -- KATAKANA LETTER GI+switch 'K' 'u' = '\x30AF' -- KATAKANA LETTER KU+switch 'G' 'u' = '\x30B0' -- KATAKANA LETTER GU+switch 'K' 'e' = '\x30B1' -- KATAKANA LETTER KE+switch 'G' 'e' = '\x30B2' -- KATAKANA LETTER GE+switch 'K' 'o' = '\x30B3' -- KATAKANA LETTER KO+switch 'G' 'o' = '\x30B4' -- KATAKANA LETTER GO+switch 'S' 'a' = '\x30B5' -- KATAKANA LETTER SA+switch 'Z' 'a' = '\x30B6' -- KATAKANA LETTER ZA+switch 'S' 'i' = '\x30B7' -- KATAKANA LETTER SI+switch 'Z' 'i' = '\x30B8' -- KATAKANA LETTER ZI+switch 'S' 'u' = '\x30B9' -- KATAKANA LETTER SU+switch 'Z' 'u' = '\x30BA' -- KATAKANA LETTER ZU+switch 'S' 'e' = '\x30BB' -- KATAKANA LETTER SE+switch 'Z' 'e' = '\x30BC' -- KATAKANA LETTER ZE+switch 'S' 'o' = '\x30BD' -- KATAKANA LETTER SO+switch 'Z' 'o' = '\x30BE' -- KATAKANA LETTER ZO+switch 'T' 'a' = '\x30BF' -- KATAKANA LETTER TA+switch 'D' 'a' = '\x30C0' -- KATAKANA LETTER DA+switch 'T' 'i' = '\x30C1' -- KATAKANA LETTER TI+switch 'D' 'i' = '\x30C2' -- KATAKANA LETTER DI+switch 'T' 'U' = '\x30C3' -- KATAKANA LETTER SMALL TU+switch 'T' 'u' = '\x30C4' -- KATAKANA LETTER TU+switch 'D' 'u' = '\x30C5' -- KATAKANA LETTER DU+switch 'T' 'e' = '\x30C6' -- KATAKANA LETTER TE+switch 'D' 'e' = '\x30C7' -- KATAKANA LETTER DE+switch 'T' 'o' = '\x30C8' -- KATAKANA LETTER TO+switch 'D' 'o' = '\x30C9' -- KATAKANA LETTER DO+switch 'N' 'a' = '\x30CA' -- KATAKANA LETTER NA+switch 'N' 'i' = '\x30CB' -- KATAKANA LETTER NI+switch 'N' 'u' = '\x30CC' -- KATAKANA LETTER NU+switch 'N' 'e' = '\x30CD' -- KATAKANA LETTER NE+switch 'N' 'o' = '\x30CE' -- KATAKANA LETTER NO+switch 'H' 'a' = '\x30CF' -- KATAKANA LETTER HA+switch 'B' 'a' = '\x30D0' -- KATAKANA LETTER BA+switch 'P' 'a' = '\x30D1' -- KATAKANA LETTER PA+switch 'H' 'i' = '\x30D2' -- KATAKANA LETTER HI+switch 'B' 'i' = '\x30D3' -- KATAKANA LETTER BI+switch 'P' 'i' = '\x30D4' -- KATAKANA LETTER PI+switch 'H' 'u' = '\x30D5' -- KATAKANA LETTER HU+switch 'B' 'u' = '\x30D6' -- KATAKANA LETTER BU+switch 'P' 'u' = '\x30D7' -- KATAKANA LETTER PU+switch 'H' 'e' = '\x30D8' -- KATAKANA LETTER HE+switch 'B' 'e' = '\x30D9' -- KATAKANA LETTER BE+switch 'P' 'e' = '\x30DA' -- KATAKANA LETTER PE+switch 'H' 'o' = '\x30DB' -- KATAKANA LETTER HO+switch 'B' 'o' = '\x30DC' -- KATAKANA LETTER BO+switch 'P' 'o' = '\x30DD' -- KATAKANA LETTER PO+switch 'M' 'a' = '\x30DE' -- KATAKANA LETTER MA+switch 'M' 'i' = '\x30DF' -- KATAKANA LETTER MI+switch 'M' 'u' = '\x30E0' -- KATAKANA LETTER MU+switch 'M' 'e' = '\x30E1' -- KATAKANA LETTER ME+switch 'M' 'o' = '\x30E2' -- KATAKANA LETTER MO+switch 'Y' 'A' = '\x30E3' -- KATAKANA LETTER SMALL YA+switch 'Y' 'a' = '\x30E4' -- KATAKANA LETTER YA+switch 'Y' 'U' = '\x30E5' -- KATAKANA LETTER SMALL YU+switch 'Y' 'u' = '\x30E6' -- KATAKANA LETTER YU+switch 'Y' 'O' = '\x30E7' -- KATAKANA LETTER SMALL YO+switch 'Y' 'o' = '\x30E8' -- KATAKANA LETTER YO+switch 'R' 'a' = '\x30E9' -- KATAKANA LETTER RA+switch 'R' 'i' = '\x30EA' -- KATAKANA LETTER RI+switch 'R' 'u' = '\x30EB' -- KATAKANA LETTER RU+switch 'R' 'e' = '\x30EC' -- KATAKANA LETTER RE+switch 'R' 'o' = '\x30ED' -- KATAKANA LETTER RO+switch 'W' 'A' = '\x30EE' -- KATAKANA LETTER SMALL WA+switch 'W' 'a' = '\x30EF' -- KATAKANA LETTER WA+switch 'W' 'i' = '\x30F0' -- KATAKANA LETTER WI+switch 'W' 'e' = '\x30F1' -- KATAKANA LETTER WE+switch 'W' 'o' = '\x30F2' -- KATAKANA LETTER WO+switch 'N' '6' = '\x30F3' -- KATAKANA LETTER N `+switch 'V' 'u' = '\x30F4' -- KATAKANA LETTER VU+switch 'K' 'A' = '\x30F5' -- KATAKANA LETTER SMALL KA+switch 'K' 'E' = '\x30F6' -- KATAKANA LETTER SMALL KE+switch 'V' 'a' = '\x30F7' -- KATAKANA LETTER VA+switch 'V' 'i' = '\x30F8' -- KATAKANA LETTER VI+switch 'V' 'e' = '\x30F9' -- KATAKANA LETTER VE+switch 'V' 'o' = '\x30FA' -- KATAKANA LETTER VO+switch '.' '6' = '\x30FB' -- KATAKANA MIDDLE DOT+switch '-' '6' = '\x30FC' -- KATAKANA-HIRAGANA PROLONGED SOUND MARK+switch '*' '6' = '\x30FD' -- KATAKANA ITERATION MARK+switch '+' '6' = '\x30FE' -- KATAKANA VOICED ITERATION MARK+switch 'b' '4' = '\x3105' -- BOPOMOFO LETTER B+switch 'p' '4' = '\x3106' -- BOPOMOFO LETTER P+switch 'm' '4' = '\x3107' -- BOPOMOFO LETTER M+switch 'f' '4' = '\x3108' -- BOPOMOFO LETTER F+switch 'd' '4' = '\x3109' -- BOPOMOFO LETTER D+switch 't' '4' = '\x310A' -- BOPOMOFO LETTER T+switch 'n' '4' = '\x310B' -- BOPOMOFO LETTER N `+switch 'l' '4' = '\x310C' -- BOPOMOFO LETTER L+switch 'g' '4' = '\x310D' -- BOPOMOFO LETTER G+switch 'k' '4' = '\x310E' -- BOPOMOFO LETTER K+switch 'h' '4' = '\x310F' -- BOPOMOFO LETTER H+switch 'j' '4' = '\x3110' -- BOPOMOFO LETTER J+switch 'q' '4' = '\x3111' -- BOPOMOFO LETTER Q+switch 'x' '4' = '\x3112' -- BOPOMOFO LETTER X+switch 'z' 'h' = '\x3113' -- BOPOMOFO LETTER ZH+switch 'c' 'h' = '\x3114' -- BOPOMOFO LETTER CH+switch 's' 'h' = '\x3115' -- BOPOMOFO LETTER SH+switch 'r' '4' = '\x3116' -- BOPOMOFO LETTER R+switch 'z' '4' = '\x3117' -- BOPOMOFO LETTER Z+switch 'c' '4' = '\x3118' -- BOPOMOFO LETTER C+switch 's' '4' = '\x3119' -- BOPOMOFO LETTER S+switch 'a' '4' = '\x311A' -- BOPOMOFO LETTER A+switch 'o' '4' = '\x311B' -- BOPOMOFO LETTER O+switch 'e' '4' = '\x311C' -- BOPOMOFO LETTER E+switch 'a' 'i' = '\x311E' -- BOPOMOFO LETTER AI+switch 'e' 'i' = '\x311F' -- BOPOMOFO LETTER EI+switch 'a' 'u' = '\x3120' -- BOPOMOFO LETTER AU+switch 'o' 'u' = '\x3121' -- BOPOMOFO LETTER OU+switch 'a' 'n' = '\x3122' -- BOPOMOFO LETTER AN+switch 'e' 'n' = '\x3123' -- BOPOMOFO LETTER EN+switch 'a' 'N' = '\x3124' -- BOPOMOFO LETTER ANG+switch 'e' 'N' = '\x3125' -- BOPOMOFO LETTER ENG+switch 'e' 'r' = '\x3126' -- BOPOMOFO LETTER ER+switch 'i' '4' = '\x3127' -- BOPOMOFO LETTER I+switch 'u' '4' = '\x3128' -- BOPOMOFO LETTER U+switch 'i' 'u' = '\x3129' -- BOPOMOFO LETTER IU+switch 'v' '4' = '\x312A' -- BOPOMOFO LETTER V+switch 'n' 'G' = '\x312B' -- BOPOMOFO LETTER NG+switch 'g' 'n' = '\x312C' -- BOPOMOFO LETTER GN+switch '1' 'c' = '\x3220' -- PARENTHESIZED IDEOGRAPH ONE+switch '2' 'c' = '\x3221' -- PARENTHESIZED IDEOGRAPH TWO+switch '3' 'c' = '\x3222' -- PARENTHESIZED IDEOGRAPH THREE+switch '4' 'c' = '\x3223' -- PARENTHESIZED IDEOGRAPH FOUR+switch '5' 'c' = '\x3224' -- PARENTHESIZED IDEOGRAPH FIVE+switch '6' 'c' = '\x3225' -- PARENTHESIZED IDEOGRAPH SIX+switch '7' 'c' = '\x3226' -- PARENTHESIZED IDEOGRAPH SEVEN+switch '8' 'c' = '\x3227' -- PARENTHESIZED IDEOGRAPH EIGHT+switch '9' 'c' = '\x3228' -- PARENTHESIZED IDEOGRAPH NINE+switch 'f' 'f' = '\xFB00' -- LATIN SMALL LIGATURE FF+switch 'f' 'i' = '\xFB01' -- LATIN SMALL LIGATURE FI+switch 'f' 'l' = '\xFB02' -- LATIN SMALL LIGATURE FL+switch 'f' 't' = '\xFB05' -- LATIN SMALL LIGATURE LONG S T+switch 's' 't' = '\xFB06' -- LATIN SMALL LIGATURE ST+switch _ _ = '\xFFFF' -- Fallback
src/Yi/Keymap/Vim/Ex/Commands/Edit.hs view
@@ -15,29 +15,33 @@ import Control.Applicative (Alternative ((<|>))) import Control.Monad (void, when) import Data.Maybe (isJust)-import qualified Data.Text as T (Text, append, pack, unpack)-import qualified Data.Attoparsec.Text as P (anyChar, many1, space, string, try, option)+import qualified Data.Text as T (Text, append, pack, unpack, null)+import qualified Data.Attoparsec.Text as P (anyChar, many', many1, space, string, try, option) import Yi.Editor (MonadEditor (withEditor), newTabE) import Yi.File (openNewFile) import Yi.Keymap (Action (YiA)) import Yi.Keymap.Vim.Common (EventString) import qualified Yi.Keymap.Vim.Ex.Commands.Common as Common (filenameComplete, impureExCommand, parse) import Yi.Keymap.Vim.Ex.Types (ExCommand (cmdAction, cmdComplete, cmdShow))+import Yi.Editor (printMsg) parse :: EventString -> Maybe ExCommand parse = Common.parse $ do tab <- P.option Nothing $ Just <$> P.string "tab" void $ P.try (P.string "edit") <|> P.string "e" void $ P.many1 P.space- filename <- T.pack <$> P.many1 P.anyChar+ filename <- T.pack <$> P.many' P.anyChar return $! edit (isJust tab) filename edit :: Bool -> T.Text -> ExCommand edit tab f = Common.impureExCommand { cmdShow = showEdit tab f- , cmdAction = YiA $ do- when tab $ withEditor newTabE- openNewFile $ T.unpack f+ , cmdAction = YiA $+ if T.null f+ then printMsg "No file name"+ else do+ when tab $ withEditor newTabE+ openNewFile $ T.unpack f , cmdComplete = (fmap . fmap) (showEdit tab) (Common.filenameComplete f) }
src/Yi/Keymap/Vim/InsertMap.hs view
@@ -23,7 +23,7 @@ import Yi.Editor (EditorM, getEditorDyn, withCurrentBuffer) import Yi.Event (Event) import Yi.Keymap.Vim.Common-import Yi.Keymap.Vim.Digraph (charFromDigraph)+import Yi.Keymap.Vim.Digraph (charFromDigraph, DigraphTbl) import Yi.Keymap.Vim.EventUtils (eventToEventString, parseEvents) import Yi.Keymap.Vim.Motion (Move (Move), stringToMove) import Yi.Keymap.Vim.StateUtils@@ -32,16 +32,16 @@ import qualified Yi.Rope as R (fromString, fromText) import Yi.TextCompletion (CompletionScope (..), completeWordB) -defInsertMap :: [(String, Char)] -> [VimBinding]+defInsertMap :: DigraphTbl -> [VimBinding] defInsertMap digraphs = [rawPrintable] <> specials digraphs <> [printable] -specials :: [(String, Char)] -> [VimBinding]+specials :: DigraphTbl -> [VimBinding] specials digraphs = [exitBinding digraphs, pasteRegisterBinding, digraphBinding digraphs , oneshotNormalBinding, completionBinding, cursorBinding] -exitBinding :: [(String, Char)] -> VimBinding+exitBinding :: DigraphTbl -> VimBinding exitBinding digraphs = VimBindingE f where f :: EventString -> VimState -> MatchResult (EditorM RepeatToken)@@ -86,7 +86,7 @@ return Continue f _ _ = NoMatch -replay :: [(String, Char)] -> [Event] -> EditorM ()+replay :: DigraphTbl -> [Event] -> EditorM () replay _ [] = return () replay digraphs (e1:es1) = do state <- getEditorDyn@@ -130,7 +130,7 @@ return Continue f _ _ = NoMatch -digraphBinding :: [(String, Char)] -> VimBinding+digraphBinding :: DigraphTbl -> VimBinding digraphBinding digraphs = VimBindingE (f . T.unpack . _unEv) where f ('<':'C':'-':'k':'>':c1:c2:[]) (VimState { vsMode = Insert _ }) = WholeMatch $ do
src/Yi/Keymap/Vim/VisualMap.hs view
@@ -13,8 +13,8 @@ module Yi.Keymap.Vim.VisualMap ( defVisualMap ) where -import Lens.Micro.Platform ((.=))-import Control.Monad (forM_, void)+import Lens.Micro.Platform ((.=))+import Control.Monad (forM_, void, when) import Data.Char (ord) import Data.List (group) import Data.Maybe (fromJust, fromMaybe)@@ -27,10 +27,10 @@ import Yi.Keymap.Vim.StyledRegion (StyledRegion (StyledRegion), transformCharactersInRegionB) import Yi.Keymap.Vim.Tag (gotoTag) import Yi.Keymap.Vim.TextObject-import Yi.Keymap.Vim.Utils (matchFromBool, mkChooseRegisterBinding, mkMotionBinding, addNewLineIfNecessary)+import Yi.Keymap.Vim.Utils (matchFromBool, mkChooseRegisterBinding, mkMotionBinding, addNewLineIfNecessary, pasteInclusiveB) import Yi.MiniBuffer (spawnMinibufferE) import Yi.Monad (whenM)-import qualified Yi.Rope as R (toText)+import qualified Yi.Rope as R (toText, countNewLines) import Yi.Tag (Tag (Tag)) import Yi.Utils (SemiNum ((-~))) @@ -230,40 +230,73 @@ region <- withCurrentBuffer regionOfSelectionB withCurrentBuffer $ transformCharactersInRegionB (StyledRegion style region) (\x -> if x == '\n' then x else c)- escAction+ void escAction return Finish _ -> NoMatch f _ _ = NoMatch ++data VisualPaste+ = PasteBefore+ | ReplaceSelection+ deriving (Eq, Ord, Show)+ pasteBinding :: VimBinding pasteBinding = VimBindingE (f . T.unpack . _unEv) where- f "p" (VimState { vsMode = (Visual style) }) = WholeMatch $ do+ f "P" VimState { vsMode = (Visual style) } = pasteMatch style PasteBefore+ f "p" VimState { vsMode = (Visual style) } = pasteMatch style ReplaceSelection+ f _ _ = NoMatch++ pasteMatch :: RegionStyle -> VisualPaste -> MatchResult (EditorM RepeatToken)+ pasteMatch style p = WholeMatch $ do register <- getRegisterE . vsActiveRegister =<< getEditorDyn- case (register, style) of- (Just (Register _style rope), LineWise) -> withCurrentBuffer $ do- region <- regionOfSelectionB- _ <- deleteRegionWithStyleB region LineWise- insertRopeWithStyleB (addNewLineIfNecessary rope) LineWise- (Just (Register Block rope), Block) -> withCurrentBuffer $ do- here <- pointB- there <- getSelectionMarkPointB- (here', there') <- flipRectangleB here there- reg <- regionOfSelectionB- void $ deleteRegionWithStyleB reg Block- moveTo (minimum [here, there, here', there'])- insertRopeWithStyleB rope Block- (Just (Register _ _), Block) ->- printMsg "Pasting non-block string into a block selection is not implemented"- (Just (Register _style rope), _) -> withCurrentBuffer $ do- region <- regionOfSelectionB- region' <- convertRegionToStyleB region Inclusive- replaceRegionB region' rope- _ -> pure ()- escAction+ maybe (pure ()) (paste style p) register+ void escAction return Finish- f _ _ = NoMatch + paste :: RegionStyle -> VisualPaste -> Register -> EditorM ()+ paste LineWise = linePaste+ paste Block = blockPaste+ paste Inclusive = otherPaste+ paste Exclusive = otherPaste++ linePaste :: VisualPaste -> Register -> EditorM ()+ linePaste p (Register _style rope) = withCurrentBuffer $ do+ region <- regionOfSelectionB+ when (p == ReplaceSelection) . void $ deleteRegionWithStyleB region LineWise+ insertRopeWithStyleB (addNewLineIfNecessary rope) LineWise++ blockPaste :: VisualPaste -> Register -> EditorM ()+ blockPaste p (Register _style rope) = withCurrentBuffer $ do+ here <- pointB+ there <- getSelectionMarkPointB+ (here', there') <- flipRectangleB here there+ reg <- regionOfSelectionB+ moveTo (minimum [here, there, here', there'])+ when (p == ReplaceSelection) . void $ deleteRegionWithStyleB reg Block+ if R.countNewLines rope == 0+ then actionOnLeft reg $ maybe (pure ()) (\_ -> insertRopeWithStyleB rope _style)+ else pasteInclusiveB rope _style+ where+ -- Taken from deleteRegionWithStyleB+ actionOnLeft :: Region -> (Maybe Point -> BufferM ()) -> BufferM ()+ actionOnLeft reg action = savingPointB $ do+ (start, lengths) <- shapeOfBlockRegionB reg+ moveTo start+ forM_ (zip [0..] lengths) $ \(i, l) -> do+ p' <- pointB+ moveTo start+ void $ lineMoveRel i+ action (if l == 0 then Nothing else Just p')++ otherPaste :: VisualPaste -> Register -> EditorM ()+ otherPaste _ (Register _style rope) = withCurrentBuffer $ do+ region <- regionOfSelectionB+ region' <- convertRegionToStyleB region Inclusive+ replaceRegionB region' rope++ switchEdgeBinding :: VimBinding switchEdgeBinding = VimBindingE (f . T.unpack . _unEv) where f [c] (VimState { vsMode = (Visual _) }) | c `elem` ['o', 'O']@@ -305,7 +338,7 @@ = WholeMatch $ do tag <- Tag . R.toText <$> withCurrentBuffer (regionOfSelectionB >>= readRegionB)- withEditor escAction+ void $ withEditor escAction gotoTag tag 0 Nothing return Finish f _ _ = NoMatch
+ tests/vimtests/blockvisual/block_P_1.test view
@@ -0,0 +1,14 @@+-- Input+(1,1)+foo+bar++baz+-- Output+(1,1)+foofoo+foobar++foobaz+-- Events+yw<C-v>jjjP<Esc>
+ tests/vimtests/blockvisual/block_P_2.test view
@@ -0,0 +1,20 @@+-- Input+(4,1)+123456+123456+123456+foo+bar++baz+-- Output+(1,1)+foo123456+bar123456+123456+bazfoo+bar++baz+-- Events+<C-v>jjjey<C-v>kkkP<Esc>
+ tests/vimtests/blockvisual/block_P_3.test view
@@ -0,0 +1,20 @@+-- Input+(4,1)+123456+123456+123456+foo+bar++baz+-- Output+(1,1)+foo123456+bar123456+123456+foo+bar++baz+-- Events+<C-v>jey<C-v>kkkP<Esc>
+ tests/vimtests/blockvisual/block_P_4.test view
@@ -0,0 +1,14 @@+-- Input+(1,1)+foo+bar++baz+-- Output+(1,1)+foofoo+barbar++bazbaz+-- Events+<C-v>jjjey<C-v>jjjP<Esc>
+ tests/vimtests/blockvisual/block_p_1.test view
@@ -0,0 +1,14 @@+-- Input+(1,1)+foo+bar++baz+-- Output+(1,1)+foooo+fooar++fooaz+-- Events+yw<C-v>jjjp<Esc>
+ tests/vimtests/blockvisual/block_p_2.test view
@@ -0,0 +1,20 @@+-- Input+(4,1)+123456+123456+123456+foo+bar++baz+-- Output+(1,1)+foo23456+bar23456+23456+bazoo+bar++baz+-- Events+<C-v>jjjey<C-v>kkkp<Esc>
+ tests/vimtests/blockvisual/block_p_3.test view
@@ -0,0 +1,20 @@+-- Input+(4,1)+123456+123456+123456+foo+bar++baz+-- Output+(1,1)+foo23456+bar23456+23456+oo+bar++baz+-- Events+<C-v>jey<C-v>kkkp<Esc>
+ tests/vimtests/blockvisual/block_p_4.test view
@@ -0,0 +1,14 @@+-- Input+(1,1)+foo+bar++baz+-- Output+(1,1)+foooo+barar++bazaz+-- Events+<C-v>jjjey<C-v>jjjp<Esc>
− tests/vimtests/delete/2dw..test
@@ -1,12 +0,0 @@--- Input-(2,1)-a b c d e f g h i j-a b c d e f g h i j-a b c d e f g h i j--- Output-(2,1)-a b c d e f g h i j-e f g h i j-a b c d e f g h i j--- Events-2dw.
− tests/vimtests/delete/2dw2..test
@@ -1,12 +0,0 @@--- Input-(2,1)-a b c d e f g h i j-a b c d e f g h i j-a b c d e f g h i j--- Output-(2,1)-a b c d e f g h i j-e f g h i j-a b c d e f g h i j--- Events-2dw2.
− tests/vimtests/delete/2dw3..test
@@ -1,12 +0,0 @@--- Input-(2,1)-a b c d e f g h i j-a b c d e f g h i j-a b c d e f g h i j--- Output-(2,1)-a b c d e f g h i j-f g h i j-a b c d e f g h i j--- Events-2dw3.
+ tests/vimtests/repeat/O1.test view
@@ -0,0 +1,17 @@+-- Input+(2,1)+123+456+789+-- Output+(7,3)+123+456+abc+abc+abc+abc+abc+789+-- Events+2oabc<Esc>3.
yi-keymap-vim.cabal view
@@ -1,9 +1,5 @@--- This file has been generated from package.yaml by hpack version 0.17.1.------ see: https://github.com/sol/hpack- name: yi-keymap-vim-version: 0.16.0+version: 0.17.1 synopsis: Vim keymap for Yi editor category: Yi homepage: https://github.com/yi-editor/yi#readme@@ -13,478 +9,36 @@ build-type: Simple cabal-version: >= 1.10 -data-files:- tests/vimtests/blockvisual/0.test- tests/vimtests/blockvisual/8.test- tests/vimtests/blockvisual/9.test- tests/vimtests/blockvisual/block.test- tests/vimtests/blockvisual/block_d.test- tests/vimtests/blockvisual/block_d_1.test- tests/vimtests/blockvisual/block_d_2.test- tests/vimtests/blockvisual/c.test- tests/vimtests/blockvisual/capD_1.test- tests/vimtests/blockvisual/capD_2.test- tests/vimtests/blockvisual/capI.test- tests/vimtests/blockvisual/capU_2.test- tests/vimtests/blockvisual/commentblock.test- tests/vimtests/blockvisual/commentblock_1.test- tests/vimtests/blockvisual/commentblock_2.test- tests/vimtests/blockvisual/d.test- tests/vimtests/blockvisual/d_1.test- tests/vimtests/blockvisual/d_2.test- tests/vimtests/blockvisual/d_3.test- tests/vimtests/blockvisual/d_4.test- tests/vimtests/blockvisual/hl.test- tests/vimtests/blockvisual/o_1.test- tests/vimtests/blockvisual/o_2.test- tests/vimtests/blockvisual/o_3.test- tests/vimtests/blockvisual/o_4.test- tests/vimtests/blockvisual/o_5.test- tests/vimtests/blockvisual/o_6.test- tests/vimtests/blockvisual/paste_block.test- tests/vimtests/blockvisual/r_1.test- tests/vimtests/blockvisual/r_2.test- tests/vimtests/blockvisual/r_3.test- tests/vimtests/blockvisual/r_4.test- tests/vimtests/blockvisual/switchcase_2.test- tests/vimtests/blockvisual/u_2.test- tests/vimtests/blockvisual/y_10.test- tests/vimtests/blockvisual/y_11.test- tests/vimtests/blockvisual/y_12.test- tests/vimtests/blockvisual/y_13.test- tests/vimtests/blockvisual/y_14.test- tests/vimtests/blockvisual/y_15.test- tests/vimtests/blockvisual/y_3.test- tests/vimtests/blockvisual/y_4.test- tests/vimtests/blockvisual/y_7.test- tests/vimtests/blockvisual/y_8.test- tests/vimtests/blockvisual/y_9.test- tests/vimtests/change/c3l.test- tests/vimtests/change/C_part_of_line.test- tests/vimtests/change/C_whole_line.test- tests/vimtests/change/cc.test- tests/vimtests/change/ciw.test- tests/vimtests/change/S.test- tests/vimtests/change/s_eol.test- tests/vimtests/change/V3jc.test- tests/vimtests/delete/10dd.test- tests/vimtests/delete/2d3w.test- tests/vimtests/delete/2d3w_1.test- tests/vimtests/delete/2dd.test- tests/vimtests/delete/2dw..test- tests/vimtests/delete/2dw2..test- tests/vimtests/delete/2dw3..test- tests/vimtests/delete/C-u_1.test- tests/vimtests/delete/C-u_2.test- tests/vimtests/delete/capD.test- tests/vimtests/delete/capX.test- tests/vimtests/delete/capX_1.test- tests/vimtests/delete/d0.test- tests/vimtests/delete/d00.test- tests/vimtests/delete/d2G.test- tests/vimtests/delete/d2vd.test- tests/vimtests/delete/d2vd_1.test- tests/vimtests/delete/d3G.test- tests/vimtests/delete/d3vd.test- tests/vimtests/delete/d_capG.test- tests/vimtests/delete/d_capV_right_curly.test- tests/vimtests/delete/d_right_curly.test- tests/vimtests/delete/d_v_right_curly.test- tests/vimtests/delete/daw.test- tests/vimtests/delete/dd.test- tests/vimtests/delete/dd_1.test- tests/vimtests/delete/dd_2.test- tests/vimtests/delete/dd_3.test- tests/vimtests/delete/dd_4.test- tests/vimtests/delete/dd_5.test- tests/vimtests/delete/de.test- tests/vimtests/delete/diw.test- tests/vimtests/delete/dj.test- tests/vimtests/delete/dt.test- tests/vimtests/delete/dvd.test- tests/vimtests/delete/dve.test- tests/vimtests/delete/dVl.test- tests/vimtests/delete/dw_1.test- tests/vimtests/delete/ld3w.test- tests/vimtests/delete/ld3w_1.test- tests/vimtests/delete/ldw.test- tests/vimtests/delete/ldwdw.test- tests/vimtests/delete/spec_delete.test- tests/vimtests/delete/x.test- tests/vimtests/delete/x_1.test- tests/vimtests/digraphs/ae.test- tests/vimtests/digraphs/eacute.test- tests/vimtests/empty/empty.test- tests/vimtests/ex/empty.test- tests/vimtests/ex/esc.test- tests/vimtests/ex/esc_1.test- tests/vimtests/ex/fail.test- tests/vimtests/find/f.test- tests/vimtests/find/f1.test- tests/vimtests/find/f2.test- tests/vimtests/find/f3.test- tests/vimtests/find/f4.test- tests/vimtests/find/f5.test- tests/vimtests/find/f6.test- tests/vimtests/find/t.test- tests/vimtests/find/t1.test- tests/vimtests/find/t2.test- tests/vimtests/find/t3.test- tests/vimtests/find/t4.test- tests/vimtests/find/t5.test- tests/vimtests/find/t6.test- tests/vimtests/find/t7.test- tests/vimtests/format/break_line_in_word.test- tests/vimtests/format/indent.test- tests/vimtests/format/join_lines.test- tests/vimtests/format/long_blank_line.test- tests/vimtests/format/long_line.test- tests/vimtests/format/trailing_ws.test- tests/vimtests/indent/1.test- tests/vimtests/indent/2.test- tests/vimtests/indent/3.test- tests/vimtests/indent/4.test- tests/vimtests/indent/5.test- tests/vimtests/indent/6.test- tests/vimtests/indent/7.test- tests/vimtests/indent/8.test- tests/vimtests/indent/setpaste.test- tests/vimtests/insertion/2o.test- tests/vimtests/insertion/a.test- tests/vimtests/insertion/a2.test- tests/vimtests/insertion/a3.test- tests/vimtests/insertion/a4.test- tests/vimtests/insertion/a_on_empty_line.test- tests/vimtests/insertion/C-b.test- tests/vimtests/insertion/C-c_0.test- tests/vimtests/insertion/C-c_1.test- tests/vimtests/insertion/C-c_10.test- tests/vimtests/insertion/C-c_11.test- tests/vimtests/insertion/C-c_12.test- tests/vimtests/insertion/C-c_13.test- tests/vimtests/insertion/C-c_2.test- tests/vimtests/insertion/C-c_3.test- tests/vimtests/insertion/C-c_4.test- tests/vimtests/insertion/C-c_5.test- tests/vimtests/insertion/C-c_6.test- tests/vimtests/insertion/C-c_7.test- tests/vimtests/insertion/C-c_8.test- tests/vimtests/insertion/C-c_9.test- tests/vimtests/insertion/C-d_0.test- tests/vimtests/insertion/C-d_1.test- tests/vimtests/insertion/C-d_2.test- tests/vimtests/insertion/C-d_3.test- tests/vimtests/insertion/C-d_4.test- tests/vimtests/insertion/C-d_5.test- tests/vimtests/insertion/C-d_6.test- tests/vimtests/insertion/C-e_0.test- tests/vimtests/insertion/C-e_1.test- tests/vimtests/insertion/C-e_2.test- tests/vimtests/insertion/C-f.test- tests/vimtests/insertion/C-h_0.test- tests/vimtests/insertion/C-h_1.test- tests/vimtests/insertion/C-h_2.test- tests/vimtests/insertion/C-h_3.test- tests/vimtests/insertion/C-h_4.test- tests/vimtests/insertion/C-o_2.test- tests/vimtests/insertion/C-o_3.test- tests/vimtests/insertion/C-o_4.test- tests/vimtests/insertion/C-r_0.test- tests/vimtests/insertion/C-r_1.test- tests/vimtests/insertion/C-w_0.test- tests/vimtests/insertion/C-w_1.test- tests/vimtests/insertion/C-y_0.test- tests/vimtests/insertion/C-y_1.test- tests/vimtests/insertion/C-y_2.test- tests/vimtests/insertion/capA.test- tests/vimtests/insertion/capA2.test- tests/vimtests/insertion/capA3.test- tests/vimtests/insertion/capA4.test- tests/vimtests/insertion/capI.test- tests/vimtests/insertion/capI2.test- tests/vimtests/insertion/capI3.test- tests/vimtests/insertion/capO.test- tests/vimtests/insertion/counted_a.test- tests/vimtests/insertion/counted_capA.test- tests/vimtests/insertion/counted_capI.test- tests/vimtests/insertion/counted_capO.test- tests/vimtests/insertion/counted_i.test- tests/vimtests/insertion/counted_o.test- tests/vimtests/insertion/i.test- tests/vimtests/insertion/i2.test- tests/vimtests/insertion/i3.test- tests/vimtests/insertion/indent_0.test- tests/vimtests/insertion/indent_1.test- tests/vimtests/insertion/indent_2.test- tests/vimtests/insertion/indent_3.test- tests/vimtests/insertion/indent_4.test- tests/vimtests/insertion/indent_5.test- tests/vimtests/insertion/indent_6.test- tests/vimtests/insertion/indent_7.test- tests/vimtests/insertion/indent_8.test- tests/vimtests/insertion/nl_insert.test- tests/vimtests/insertion/o.test- tests/vimtests/insertion/o1.test- tests/vimtests/insertion/O2.test- tests/vimtests/insertion/o3.test- tests/vimtests/insertion/O4.test- tests/vimtests/insertion/onechar.test- tests/vimtests/insertion/spec_delete.test- tests/vimtests/insertion/spec_insert.test- tests/vimtests/joinlines/1.test- tests/vimtests/joinlines/2.test- tests/vimtests/joinlines/counted_1.test- tests/vimtests/joinlines/counted_2.test- tests/vimtests/jumplist/1.test- tests/vimtests/jumplist/2.test- tests/vimtests/macros/0.test- tests/vimtests/macros/1.test- tests/vimtests/macros/10.test- tests/vimtests/macros/11.test- tests/vimtests/macros/12.test- tests/vimtests/macros/13.test- tests/vimtests/macros/14.test- tests/vimtests/macros/15.test- tests/vimtests/macros/16.test- tests/vimtests/macros/2.test- tests/vimtests/macros/3.test- tests/vimtests/macros/4.test- tests/vimtests/macros/5.test- tests/vimtests/macros/6.test- tests/vimtests/macros/7.test- tests/vimtests/macros/8.test- tests/vimtests/macros/9.test- tests/vimtests/macros/repeat_last_macro.test- tests/vimtests/marks/unjump_backquote.test- tests/vimtests/marks/unjump_quote.test- tests/vimtests/marks/unjump_quote_blank.test- tests/vimtests/movement/empty.test- tests/vimtests/movement/empty_1.test- tests/vimtests/movement/eol_j.test- tests/vimtests/movement/eol_j2.test- tests/vimtests/movement/v_eol_j2.test- tests/vimtests/numbers/cursor_on_digits.test- tests/vimtests/numbers/decrement.test- tests/vimtests/numbers/hex_decrease.test- tests/vimtests/numbers/hex_increase.test- tests/vimtests/numbers/increment.test- tests/vimtests/numbers/no_numbers.test- tests/vimtests/numbers/oct_decrease.test- tests/vimtests/numbers/oct_hex_letters.test- tests/vimtests/numbers/oct_increase.test- tests/vimtests/numbers/sol_eol.test- tests/vimtests/paste/2dd_capP.test- tests/vimtests/paste/2dd_capP_1.test- tests/vimtests/paste/2ddp.test- tests/vimtests/paste/2ddp_1.test- tests/vimtests/paste/2yyp.test- tests/vimtests/paste/d2wp.test- tests/vimtests/paste/dbp.test- tests/vimtests/paste/dd_capP.test- tests/vimtests/paste/dd_capP_1.test- tests/vimtests/paste/ddjp.test- tests/vimtests/paste/ddkP.test- tests/vimtests/paste/ddp.test- tests/vimtests/paste/ddp_1.test- tests/vimtests/paste/dep.test- tests/vimtests/paste/dw_capP.test- tests/vimtests/paste/dwp.test- tests/vimtests/paste/p_at_newline.test- tests/vimtests/paste/p_at_newline2.test- tests/vimtests/paste/visual.test- tests/vimtests/paste/y_1.test- tests/vimtests/paste/y_2.test- tests/vimtests/paste/y_3.test- tests/vimtests/paste/yep.test- tests/vimtests/paste/yjp.test- tests/vimtests/paste/Yp.test- tests/vimtests/paste/ywp.test- tests/vimtests/paste/yy_capP.test- tests/vimtests/paste/yyp.test- tests/vimtests/repeat/2r.test- tests/vimtests/repeat/a.test- tests/vimtests/repeat/a2.test- tests/vimtests/repeat/a3.test- tests/vimtests/repeat/a4.test- tests/vimtests/repeat/a5.test- tests/vimtests/repeat/capA.test- tests/vimtests/repeat/capA2.test- tests/vimtests/repeat/capA3.test- tests/vimtests/repeat/capA4.test- tests/vimtests/repeat/capC.test- tests/vimtests/repeat/capI.test- tests/vimtests/repeat/capI2.test- tests/vimtests/repeat/capI3.test- tests/vimtests/repeat/capI4.test- tests/vimtests/repeat/capO.test- tests/vimtests/repeat/capO2.test- tests/vimtests/repeat/capO3.test- tests/vimtests/repeat/capX.test- tests/vimtests/repeat/capX_1.test- tests/vimtests/repeat/counted_2r.test- tests/vimtests/repeat/dw_capP.test- tests/vimtests/repeat/dwp.test- tests/vimtests/repeat/i.test- tests/vimtests/repeat/i2.test- tests/vimtests/repeat/i3.test- tests/vimtests/repeat/i4.test- tests/vimtests/repeat/o.test- tests/vimtests/repeat/o1.test- tests/vimtests/repeat/o2.test- tests/vimtests/repeat/o3.test- tests/vimtests/repeat/r.test- tests/vimtests/repeat/r_1.test- tests/vimtests/repeat/r_2.test- tests/vimtests/repeat/r_3.test- tests/vimtests/repeat/tilde_repeat.test- tests/vimtests/repeat/tilde_repeat_does_not_affect_other_lines.test- tests/vimtests/repeat/x.test- tests/vimtests/repeat/x_1.test- tests/vimtests/repeat/x_2.test- tests/vimtests/replace/0.test- tests/vimtests/replace/1.test- tests/vimtests/replace/10.test- tests/vimtests/replace/11.test- tests/vimtests/replace/12.test- tests/vimtests/replace/2.test- tests/vimtests/replace/3.test- tests/vimtests/replace/4.test- tests/vimtests/replace/5.test- tests/vimtests/replace/6.test- tests/vimtests/replace/7.test- tests/vimtests/replace/8.test- tests/vimtests/replace/9.test- tests/vimtests/search/1.test- tests/vimtests/search/2.test- tests/vimtests/search/3.test- tests/vimtests/search/4.test- tests/vimtests/search/5.test- tests/vimtests/search/6.test- tests/vimtests/search/7.test- tests/vimtests/search/8.test- tests/vimtests/search/9.test- tests/vimtests/search/counted_1.test- tests/vimtests/search/counted_2.test- tests/vimtests/search/counted_3.test- tests/vimtests/search/counted_capN_1.test- tests/vimtests/search/counted_capN_2.test- tests/vimtests/search/counted_n_1.test- tests/vimtests/search/counted_n_2.test- tests/vimtests/search/counted_n_3.test- tests/vimtests/search/history1.test- tests/vimtests/search/history2.test- tests/vimtests/search/history3.test- tests/vimtests/search/history4.test- tests/vimtests/searchword/g_pound.test- tests/vimtests/searchword/g_repeat_pound.test- tests/vimtests/searchword/g_repeat_pound_1.test- tests/vimtests/searchword/g_repeat_star.test- tests/vimtests/searchword/g_star.test- tests/vimtests/searchword/pound.test- tests/vimtests/searchword/repeat_pound.test- tests/vimtests/searchword/repeat_star.test- tests/vimtests/searchword/star.test- tests/vimtests/searchword/star_2.test- tests/vimtests/sort/1.test- tests/vimtests/sort/2.test- tests/vimtests/sort/3.test- tests/vimtests/sort/4.test- tests/vimtests/sort/5.test- tests/vimtests/sort/6.test- tests/vimtests/switchcase/g_capU.test- tests/vimtests/switchcase/gtilde.test- tests/vimtests/switchcase/gtilde_1.test- tests/vimtests/switchcase/gu.test- tests/vimtests/switchcase/tilde_does_not_cross_lines.test- tests/vimtests/switchcase/tilde_left_over_count_at_eol_is_ignored.test- tests/vimtests/switchcase/tilde_near_eol.test- tests/vimtests/switchcase/tilde_no_count.test- tests/vimtests/switchcase/tilde_with_count.test- tests/vimtests/undo/1.test- tests/vimtests/undo/2.test- tests/vimtests/undo/3.test- tests/vimtests/undo/4.test- tests/vimtests/undo/5.test- tests/vimtests/undo/6.test- tests/vimtests/undo/7.test- tests/vimtests/undo/8.test- tests/vimtests/undo/9.test- tests/vimtests/undo/cw.test- tests/vimtests/unicode/chinese-simp.test- tests/vimtests/unicode/chinese-trad.test- tests/vimtests/unicode/russian.test- tests/vimtests/unsorted/2yy.test- tests/vimtests/unsorted/v3lcABC.test- tests/vimtests/visual/1.test- tests/vimtests/visual/10.test- tests/vimtests/visual/11.test- tests/vimtests/visual/12.test- tests/vimtests/visual/13.test- tests/vimtests/visual/14.test- tests/vimtests/visual/15.test- tests/vimtests/visual/2.test- tests/vimtests/visual/3.test- tests/vimtests/visual/4.test- tests/vimtests/visual/6.test- tests/vimtests/visual/7.test- tests/vimtests/visual/A_0.test- tests/vimtests/visual/A_1.test- tests/vimtests/visual/A_2.test- tests/vimtests/visual/A_3.test- tests/vimtests/visual/capD_0.test- tests/vimtests/visual/capD_1.test- tests/vimtests/visual/capD_2.test- tests/vimtests/visual/capU_0.test- tests/vimtests/visual/capU_1.test- tests/vimtests/visual/capY_0.test- tests/vimtests/visual/CSs.test- tests/vimtests/visual/d_0.test- tests/vimtests/visual/d_1.test- tests/vimtests/visual/d_2.test- tests/vimtests/visual/gq_0.test- tests/vimtests/visual/gq_1.test- tests/vimtests/visual/I_0.test- tests/vimtests/visual/I_1.test- tests/vimtests/visual/indent_0.test- tests/vimtests/visual/indent_1.test- tests/vimtests/visual/indent_10.test- tests/vimtests/visual/indent_11.test- tests/vimtests/visual/indent_12.test- tests/vimtests/visual/indent_13.test- tests/vimtests/visual/indent_2.test- tests/vimtests/visual/indent_3.test- tests/vimtests/visual/indent_4.test- tests/vimtests/visual/indent_5.test- tests/vimtests/visual/indent_6.test- tests/vimtests/visual/indent_7.test- tests/vimtests/visual/indent_8.test- tests/vimtests/visual/indent_9.test- tests/vimtests/visual/m_0.test- tests/vimtests/visual/m_1.test- tests/vimtests/visual/o_0.test- tests/vimtests/visual/paste_line.test- tests/vimtests/visual/paste_multiline.test- tests/vimtests/visual/paste_word.test- tests/vimtests/visual/paste_word_2.test- tests/vimtests/visual/r_0.test- tests/vimtests/visual/r_1.test- tests/vimtests/visual/r_2.test- tests/vimtests/visual/switchcase_0.test- tests/vimtests/visual/switchcase_1.test- tests/vimtests/visual/u_0.test- tests/vimtests/visual/u_1.test- tests/vimtests/visual/v3iwx.test- tests/vimtests/visual/Vd.test- tests/vimtests/visual/viw.test- tests/vimtests/visual/vlllx.test- tests/vimtests/visual/vx.test- tests/vimtests/visual/y_0.test- tests/vimtests/visual/y_1.test- tests/vimtests/visual/y_2.test- tests/vimtests/visual/y_3.test- tests/vimtests/visual/y_5.test- tests/vimtests/visual/y_6.test- tests/vimtests/yank/yy.test+extra-source-files:+ tests/vimtests/blockvisual/*.test+ tests/vimtests/change/*.test+ tests/vimtests/delete/*.test+ tests/vimtests/digraphs/*.test+ tests/vimtests/digraphs/*.test+ tests/vimtests/empty/*.test+ tests/vimtests/ex/*.test+ tests/vimtests/find/*.test+ tests/vimtests/format/*.test+ tests/vimtests/indent/*.test+ tests/vimtests/insertion/*.test+ tests/vimtests/joinlines/*.test+ tests/vimtests/jumplist/*.test+ tests/vimtests/macros/*.test+ tests/vimtests/marks/*.test+ tests/vimtests/movement/*.test+ tests/vimtests/numbers/*.test+ tests/vimtests/paste/*.test+ tests/vimtests/repeat/*.test+ tests/vimtests/replace/*.test+ tests/vimtests/search/*.test+ tests/vimtests/searchword/*.test+ tests/vimtests/sort/*.test+ tests/vimtests/switchcase/*.test+ tests/vimtests/undo/*.test+ tests/vimtests/unicode/*.test+ tests/vimtests/unsorted/*.test+ tests/vimtests/visual/*.test+ tests/vimtests/yank/*.test source-repository head type: git@@ -511,9 +65,9 @@ , text , transformers-base , unordered-containers- , yi-core- , yi-language- , yi-rope+ , yi-core >= 0.17+ , yi-language >= 0.17+ , yi-rope >= 0.10 exposed-modules: Yi.Config.Default.Vim Yi.Keymap.Vim@@ -595,14 +149,13 @@ , text , transformers-base , unordered-containers- , yi-core- , yi-language- , yi-rope+ , yi-core >= 0.17+ , yi-language >= 0.17+ , yi-rope >= 0.10 , tasty , tasty-hunit , QuickCheck , tasty-quickcheck- , yi-core , yi-keymap-vim other-modules: Generic.TestPureBufferManipulations