pub(crate) static LIGATURES: &[(char, &str)] = &[
('\u{132}', "IJ"),
('\u{133}', "ij"),
('\u{149}', "ʼn"),
('\u{1c4}', "DŽ"),
('\u{1c5}', "Dž"),
('\u{1c6}', "dž"),
('\u{1c7}', "LJ"),
('\u{1c8}', "Lj"),
('\u{1c9}', "lj"),
('\u{1ca}', "NJ"),
('\u{1cb}', "Nj"),
('\u{1cc}', "nj"),
('\u{1f1}', "DZ"),
('\u{1f2}', "Dz"),
('\u{1f3}', "dz"),
('\u{fb00}', "ff"),
('\u{fb01}', "fi"),
('\u{fb02}', "fl"),
('\u{fb03}', "ffi"),
('\u{fb04}', "ffl"),
('\u{fb05}', "ſt"),
('\u{fb06}', "st"),
];
pub(crate) static WIDTH_MAP: &[(char, &str)] = &[
('\u{3000}', " "),
('\u{ff01}', "!"),
('\u{ff02}', "\""),
('\u{ff03}', "#"),
('\u{ff04}', "$"),
('\u{ff05}', "%"),
('\u{ff06}', "&"),
('\u{ff07}', "'"),
('\u{ff08}', "("),
('\u{ff09}', ")"),
('\u{ff0a}', "*"),
('\u{ff0b}', "+"),
('\u{ff0c}', ","),
('\u{ff0d}', "-"),
('\u{ff0e}', "."),
('\u{ff0f}', "/"),
('\u{ff10}', "0"),
('\u{ff11}', "1"),
('\u{ff12}', "2"),
('\u{ff13}', "3"),
('\u{ff14}', "4"),
('\u{ff15}', "5"),
('\u{ff16}', "6"),
('\u{ff17}', "7"),
('\u{ff18}', "8"),
('\u{ff19}', "9"),
('\u{ff1a}', ":"),
('\u{ff1b}', ";"),
('\u{ff1c}', "<"),
('\u{ff1d}', "="),
('\u{ff1e}', ">"),
('\u{ff1f}', "?"),
('\u{ff20}', "@"),
('\u{ff21}', "A"),
('\u{ff22}', "B"),
('\u{ff23}', "C"),
('\u{ff24}', "D"),
('\u{ff25}', "E"),
('\u{ff26}', "F"),
('\u{ff27}', "G"),
('\u{ff28}', "H"),
('\u{ff29}', "I"),
('\u{ff2a}', "J"),
('\u{ff2b}', "K"),
('\u{ff2c}', "L"),
('\u{ff2d}', "M"),
('\u{ff2e}', "N"),
('\u{ff2f}', "O"),
('\u{ff30}', "P"),
('\u{ff31}', "Q"),
('\u{ff32}', "R"),
('\u{ff33}', "S"),
('\u{ff34}', "T"),
('\u{ff35}', "U"),
('\u{ff36}', "V"),
('\u{ff37}', "W"),
('\u{ff38}', "X"),
('\u{ff39}', "Y"),
('\u{ff3a}', "Z"),
('\u{ff3b}', "["),
('\u{ff3c}', "\\"),
('\u{ff3d}', "]"),
('\u{ff3e}', "^"),
('\u{ff3f}', "_"),
('\u{ff40}', "`"),
('\u{ff41}', "a"),
('\u{ff42}', "b"),
('\u{ff43}', "c"),
('\u{ff44}', "d"),
('\u{ff45}', "e"),
('\u{ff46}', "f"),
('\u{ff47}', "g"),
('\u{ff48}', "h"),
('\u{ff49}', "i"),
('\u{ff4a}', "j"),
('\u{ff4b}', "k"),
('\u{ff4c}', "l"),
('\u{ff4d}', "m"),
('\u{ff4e}', "n"),
('\u{ff4f}', "o"),
('\u{ff50}', "p"),
('\u{ff51}', "q"),
('\u{ff52}', "r"),
('\u{ff53}', "s"),
('\u{ff54}', "t"),
('\u{ff55}', "u"),
('\u{ff56}', "v"),
('\u{ff57}', "w"),
('\u{ff58}', "x"),
('\u{ff59}', "y"),
('\u{ff5a}', "z"),
('\u{ff5b}', "{"),
('\u{ff5c}', "|"),
('\u{ff5d}', "}"),
('\u{ff5e}', "~"),
('\u{ff5f}', "⦅"),
('\u{ff60}', "⦆"),
('\u{ff61}', "。"),
('\u{ff62}', "「"),
('\u{ff63}', "」"),
('\u{ff64}', "、"),
('\u{ff65}', "・"),
('\u{ff66}', "ヲ"),
('\u{ff67}', "ァ"),
('\u{ff68}', "ィ"),
('\u{ff69}', "ゥ"),
('\u{ff6a}', "ェ"),
('\u{ff6b}', "ォ"),
('\u{ff6c}', "ャ"),
('\u{ff6d}', "ュ"),
('\u{ff6e}', "ョ"),
('\u{ff6f}', "ッ"),
('\u{ff70}', "ー"),
('\u{ff71}', "ア"),
('\u{ff72}', "イ"),
('\u{ff73}', "ウ"),
('\u{ff74}', "エ"),
('\u{ff75}', "オ"),
('\u{ff76}', "カ"),
('\u{ff77}', "キ"),
('\u{ff78}', "ク"),
('\u{ff79}', "ケ"),
('\u{ff7a}', "コ"),
('\u{ff7b}', "サ"),
('\u{ff7c}', "シ"),
('\u{ff7d}', "ス"),
('\u{ff7e}', "セ"),
('\u{ff7f}', "ソ"),
('\u{ff80}', "タ"),
('\u{ff81}', "チ"),
('\u{ff82}', "ツ"),
('\u{ff83}', "テ"),
('\u{ff84}', "ト"),
('\u{ff85}', "ナ"),
('\u{ff86}', "ニ"),
('\u{ff87}', "ヌ"),
('\u{ff88}', "ネ"),
('\u{ff89}', "ノ"),
('\u{ff8a}', "ハ"),
('\u{ff8b}', "ヒ"),
('\u{ff8c}', "フ"),
('\u{ff8d}', "ヘ"),
('\u{ff8e}', "ホ"),
('\u{ff8f}', "マ"),
('\u{ff90}', "ミ"),
('\u{ff91}', "ム"),
('\u{ff92}', "メ"),
('\u{ff93}', "モ"),
('\u{ff94}', "ヤ"),
('\u{ff95}', "ユ"),
('\u{ff96}', "ヨ"),
('\u{ff97}', "ラ"),
('\u{ff98}', "リ"),
('\u{ff99}', "ル"),
('\u{ff9a}', "レ"),
('\u{ff9b}', "ロ"),
('\u{ff9c}', "ワ"),
('\u{ff9d}', "ン"),
('\u{ff9e}', "゙"),
('\u{ff9f}', "゚"),
('\u{ffa0}', "ᅠ"),
('\u{ffa1}', "ᄀ"),
('\u{ffa2}', "ᄁ"),
('\u{ffa3}', "ᆪ"),
('\u{ffa4}', "ᄂ"),
('\u{ffa5}', "ᆬ"),
('\u{ffa6}', "ᆭ"),
('\u{ffa7}', "ᄃ"),
('\u{ffa8}', "ᄄ"),
('\u{ffa9}', "ᄅ"),
('\u{ffaa}', "ᆰ"),
('\u{ffab}', "ᆱ"),
('\u{ffac}', "ᆲ"),
('\u{ffad}', "ᆳ"),
('\u{ffae}', "ᆴ"),
('\u{ffaf}', "ᆵ"),
('\u{ffb0}', "ᄚ"),
('\u{ffb1}', "ᄆ"),
('\u{ffb2}', "ᄇ"),
('\u{ffb3}', "ᄈ"),
('\u{ffb4}', "ᄡ"),
('\u{ffb5}', "ᄉ"),
('\u{ffb6}', "ᄊ"),
('\u{ffb7}', "ᄋ"),
('\u{ffb8}', "ᄌ"),
('\u{ffb9}', "ᄍ"),
('\u{ffba}', "ᄎ"),
('\u{ffbb}', "ᄏ"),
('\u{ffbc}', "ᄐ"),
('\u{ffbd}', "ᄑ"),
('\u{ffbe}', "ᄒ"),
('\u{ffc2}', "ᅡ"),
('\u{ffc3}', "ᅢ"),
('\u{ffc4}', "ᅣ"),
('\u{ffc5}', "ᅤ"),
('\u{ffc6}', "ᅥ"),
('\u{ffc7}', "ᅦ"),
('\u{ffca}', "ᅧ"),
('\u{ffcb}', "ᅨ"),
('\u{ffcc}', "ᅩ"),
('\u{ffcd}', "ᅪ"),
('\u{ffce}', "ᅫ"),
('\u{ffcf}', "ᅬ"),
('\u{ffd2}', "ᅭ"),
('\u{ffd3}', "ᅮ"),
('\u{ffd4}', "ᅯ"),
('\u{ffd5}', "ᅰ"),
('\u{ffd6}', "ᅱ"),
('\u{ffd7}', "ᅲ"),
('\u{ffda}', "ᅳ"),
('\u{ffdb}', "ᅴ"),
('\u{ffdc}', "ᅵ"),
('\u{ffe0}', "¢"),
('\u{ffe1}', "£"),
('\u{ffe2}', "¬"),
('\u{ffe3}', " ̄"),
('\u{ffe4}', "¦"),
('\u{ffe5}', "¥"),
('\u{ffe6}', "₩"),
('\u{ffe8}', "│"),
('\u{ffe9}', "←"),
('\u{ffea}', "↑"),
('\u{ffeb}', "→"),
('\u{ffec}', "↓"),
('\u{ffed}', "■"),
('\u{ffee}', "○"),
];
pub(crate) static CONTROL_CHARS: &[char] = &[
'\u{0}', '\u{1}', '\u{2}', '\u{3}', '\u{4}', '\u{5}', '\u{6}', '\u{7}', '\u{8}', '\u{b}',
'\u{e}', '\u{f}', '\u{10}', '\u{11}', '\u{12}', '\u{13}', '\u{14}', '\u{15}', '\u{16}',
'\u{17}', '\u{18}', '\u{19}', '\u{1a}', '\u{1b}', '\u{1c}', '\u{1d}', '\u{1e}', '\u{1f}',
'\u{7f}', '\u{206a}', '\u{206b}', '\u{206c}', '\u{206d}', '\u{206e}', '\u{206f}', '\u{feff}',
'\u{fff9}', '\u{fffa}', '\u{fffb}', '\u{fffc}',
];
pub(crate) static C1_TO_WINDOWS_1252: &[(char, char)] = &[
('\u{80}', '\u{20ac}'),
('\u{81}', '\u{81}'),
('\u{82}', '\u{201a}'),
('\u{83}', '\u{192}'),
('\u{84}', '\u{201e}'),
('\u{85}', '\u{2026}'),
('\u{86}', '\u{2020}'),
('\u{87}', '\u{2021}'),
('\u{88}', '\u{2c6}'),
('\u{89}', '\u{2030}'),
('\u{8a}', '\u{160}'),
('\u{8b}', '\u{2039}'),
('\u{8c}', '\u{152}'),
('\u{8d}', '\u{8d}'),
('\u{8e}', '\u{17d}'),
('\u{8f}', '\u{8f}'),
('\u{90}', '\u{90}'),
('\u{91}', '\u{2018}'),
('\u{92}', '\u{2019}'),
('\u{93}', '\u{201c}'),
('\u{94}', '\u{201d}'),
('\u{95}', '\u{2022}'),
('\u{96}', '\u{2013}'),
('\u{97}', '\u{2014}'),
('\u{98}', '\u{2dc}'),
('\u{99}', '\u{2122}'),
('\u{9a}', '\u{161}'),
('\u{9b}', '\u{203a}'),
('\u{9c}', '\u{153}'),
('\u{9d}', '\u{9d}'),
('\u{9e}', '\u{17e}'),
('\u{9f}', '\u{178}'),
];
pub(crate) const CURLY_SINGLE_QUOTES: &[char] =
&['\u{2bc}', '\u{2018}', '\u{2019}', '\u{201a}', '\u{201b}'];
pub(crate) const CURLY_DOUBLE_QUOTES: &[char] = &['\u{201c}', '\u{201d}', '\u{201e}', '\u{201f}'];