use super::code_table_type::TableType;
use ahash::AHashMap;
use lazy_static::lazy_static;
use TableType::*;
pub static DECODING_TABLE_CP437: [char; 128] = [
'\u{00C7}', '\u{00FC}', '\u{00E9}', '\u{00E2}', '\u{00E4}', '\u{00E0}', '\u{00E5}', '\u{00E7}',
'\u{00EA}', '\u{00EB}', '\u{00E8}', '\u{00EF}', '\u{00EE}', '\u{00EC}', '\u{00C4}', '\u{00C5}',
'\u{00C9}', '\u{00E6}', '\u{00C6}', '\u{00F4}', '\u{00F6}', '\u{00F2}', '\u{00FB}', '\u{00F9}',
'\u{00FF}', '\u{00D6}', '\u{00DC}', '\u{00A2}', '\u{00A3}', '\u{00A5}', '\u{20A7}', '\u{0192}',
'\u{00E1}', '\u{00ED}', '\u{00F3}', '\u{00FA}', '\u{00F1}', '\u{00D1}', '\u{00AA}', '\u{00BA}',
'\u{00BF}', '\u{2310}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{00A1}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{2561}', '\u{2562}', '\u{2556}',
'\u{2555}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{255C}', '\u{255B}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{255E}', '\u{255F}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{2567}',
'\u{2568}', '\u{2564}', '\u{2565}', '\u{2559}', '\u{2558}', '\u{2552}', '\u{2553}', '\u{256B}',
'\u{256A}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{03B1}', '\u{00DF}', '\u{0393}', '\u{03C0}', '\u{03A3}', '\u{03C3}', '\u{00B5}', '\u{03C4}',
'\u{03A6}', '\u{0398}', '\u{03A9}', '\u{03B4}', '\u{221E}', '\u{03C6}', '\u{03B5}', '\u{2229}',
'\u{2261}', '\u{00B1}', '\u{2265}', '\u{2264}', '\u{2320}', '\u{2321}', '\u{00F7}', '\u{2248}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{221A}', '\u{207F}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP737: [char; 128] = [
'\u{0391}', '\u{0392}', '\u{0393}', '\u{0394}', '\u{0395}', '\u{0396}', '\u{0397}', '\u{0398}',
'\u{0399}', '\u{039A}', '\u{039B}', '\u{039C}', '\u{039D}', '\u{039E}', '\u{039F}', '\u{03A0}',
'\u{03A1}', '\u{03A3}', '\u{03A4}', '\u{03A5}', '\u{03A6}', '\u{03A7}', '\u{03A8}', '\u{03A9}',
'\u{03B1}', '\u{03B2}', '\u{03B3}', '\u{03B4}', '\u{03B5}', '\u{03B6}', '\u{03B7}', '\u{03B8}',
'\u{03B9}', '\u{03BA}', '\u{03BB}', '\u{03BC}', '\u{03BD}', '\u{03BE}', '\u{03BF}', '\u{03C0}',
'\u{03C1}', '\u{03C3}', '\u{03C2}', '\u{03C4}', '\u{03C5}', '\u{03C6}', '\u{03C7}', '\u{03C8}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{2561}', '\u{2562}', '\u{2556}',
'\u{2555}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{255C}', '\u{255B}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{255E}', '\u{255F}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{2567}',
'\u{2568}', '\u{2564}', '\u{2565}', '\u{2559}', '\u{2558}', '\u{2552}', '\u{2553}', '\u{256B}',
'\u{256A}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{03C9}', '\u{03AC}', '\u{03AD}', '\u{03AE}', '\u{03CA}', '\u{03AF}', '\u{03CC}', '\u{03CD}',
'\u{03CB}', '\u{03CE}', '\u{0386}', '\u{0388}', '\u{0389}', '\u{038A}', '\u{038C}', '\u{038E}',
'\u{038F}', '\u{00B1}', '\u{2265}', '\u{2264}', '\u{03AA}', '\u{03AB}', '\u{00F7}', '\u{2248}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{221A}', '\u{207F}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP775: [char; 128] = [
'\u{0106}', '\u{00FC}', '\u{00E9}', '\u{0101}', '\u{00E4}', '\u{0123}', '\u{00E5}', '\u{0107}',
'\u{0142}', '\u{0113}', '\u{0156}', '\u{0157}', '\u{012B}', '\u{0179}', '\u{00C4}', '\u{00C5}',
'\u{00C9}', '\u{00E6}', '\u{00C6}', '\u{014D}', '\u{00F6}', '\u{0122}', '\u{00A2}', '\u{015A}',
'\u{015B}', '\u{00D6}', '\u{00DC}', '\u{00F8}', '\u{00A3}', '\u{00D8}', '\u{00D7}', '\u{00A4}',
'\u{0100}', '\u{012A}', '\u{00F3}', '\u{017B}', '\u{017C}', '\u{017A}', '\u{201D}', '\u{00A6}',
'\u{00A9}', '\u{00AE}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{0141}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{0104}', '\u{010C}', '\u{0118}',
'\u{0116}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{012E}', '\u{0160}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{0172}', '\u{016A}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{017D}',
'\u{0105}', '\u{010D}', '\u{0119}', '\u{0117}', '\u{012F}', '\u{0161}', '\u{0173}', '\u{016B}',
'\u{017E}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{00D3}', '\u{00DF}', '\u{014C}', '\u{0143}', '\u{00F5}', '\u{00D5}', '\u{00B5}', '\u{0144}',
'\u{0136}', '\u{0137}', '\u{013B}', '\u{013C}', '\u{0146}', '\u{0112}', '\u{0145}', '\u{2019}',
'\u{00AD}', '\u{00B1}', '\u{201C}', '\u{00BE}', '\u{00B6}', '\u{00A7}', '\u{00F7}', '\u{201E}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{00B9}', '\u{00B3}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP850: [char; 128] = [
'\u{00C7}', '\u{00FC}', '\u{00E9}', '\u{00E2}', '\u{00E4}', '\u{00E0}', '\u{00E5}', '\u{00E7}',
'\u{00EA}', '\u{00EB}', '\u{00E8}', '\u{00EF}', '\u{00EE}', '\u{00EC}', '\u{00C4}', '\u{00C5}',
'\u{00C9}', '\u{00E6}', '\u{00C6}', '\u{00F4}', '\u{00F6}', '\u{00F2}', '\u{00FB}', '\u{00F9}',
'\u{00FF}', '\u{00D6}', '\u{00DC}', '\u{00F8}', '\u{00A3}', '\u{00D8}', '\u{00D7}', '\u{0192}',
'\u{00E1}', '\u{00ED}', '\u{00F3}', '\u{00FA}', '\u{00F1}', '\u{00D1}', '\u{00AA}', '\u{00BA}',
'\u{00BF}', '\u{00AE}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{00A1}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{00C1}', '\u{00C2}', '\u{00C0}',
'\u{00A9}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{00A2}', '\u{00A5}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{00E3}', '\u{00C3}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{00A4}',
'\u{00F0}', '\u{00D0}', '\u{00CA}', '\u{00CB}', '\u{00C8}', '\u{0131}', '\u{00CD}', '\u{00CE}',
'\u{00CF}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{00A6}', '\u{00CC}', '\u{2580}',
'\u{00D3}', '\u{00DF}', '\u{00D4}', '\u{00D2}', '\u{00F5}', '\u{00D5}', '\u{00B5}', '\u{00FE}',
'\u{00DE}', '\u{00DA}', '\u{00DB}', '\u{00D9}', '\u{00FD}', '\u{00DD}', '\u{00AF}', '\u{00B4}',
'\u{00AD}', '\u{00B1}', '\u{2017}', '\u{00BE}', '\u{00B6}', '\u{00A7}', '\u{00F7}', '\u{00B8}',
'\u{00B0}', '\u{00A8}', '\u{00B7}', '\u{00B9}', '\u{00B3}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP852: [char; 128] = [
'\u{00C7}', '\u{00FC}', '\u{00E9}', '\u{00E2}', '\u{00E4}', '\u{016F}', '\u{0107}', '\u{00E7}',
'\u{0142}', '\u{00EB}', '\u{0150}', '\u{0151}', '\u{00EE}', '\u{0179}', '\u{00C4}', '\u{0106}',
'\u{00C9}', '\u{0139}', '\u{013A}', '\u{00F4}', '\u{00F6}', '\u{013D}', '\u{013E}', '\u{015A}',
'\u{015B}', '\u{00D6}', '\u{00DC}', '\u{0164}', '\u{0165}', '\u{0141}', '\u{00D7}', '\u{010D}',
'\u{00E1}', '\u{00ED}', '\u{00F3}', '\u{00FA}', '\u{0104}', '\u{0105}', '\u{017D}', '\u{017E}',
'\u{0118}', '\u{0119}', '\u{00AC}', '\u{017A}', '\u{010C}', '\u{015F}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{00C1}', '\u{00C2}', '\u{011A}',
'\u{015E}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{017B}', '\u{017C}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{0102}', '\u{0103}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{00A4}',
'\u{0111}', '\u{0110}', '\u{010E}', '\u{00CB}', '\u{010F}', '\u{0147}', '\u{00CD}', '\u{00CE}',
'\u{011B}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{0162}', '\u{016E}', '\u{2580}',
'\u{00D3}', '\u{00DF}', '\u{00D4}', '\u{0143}', '\u{0144}', '\u{0148}', '\u{0160}', '\u{0161}',
'\u{0154}', '\u{00DA}', '\u{0155}', '\u{0170}', '\u{00FD}', '\u{00DD}', '\u{0163}', '\u{00B4}',
'\u{00AD}', '\u{02DD}', '\u{02DB}', '\u{02C7}', '\u{02D8}', '\u{00A7}', '\u{00F7}', '\u{00B8}',
'\u{00B0}', '\u{00A8}', '\u{02D9}', '\u{0171}', '\u{0158}', '\u{0159}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP855: [char; 128] = [
'\u{0452}', '\u{0402}', '\u{0453}', '\u{0403}', '\u{0451}', '\u{0401}', '\u{0454}', '\u{0404}',
'\u{0455}', '\u{0405}', '\u{0456}', '\u{0406}', '\u{0457}', '\u{0407}', '\u{0458}', '\u{0408}',
'\u{0459}', '\u{0409}', '\u{045A}', '\u{040A}', '\u{045B}', '\u{040B}', '\u{045C}', '\u{040C}',
'\u{045E}', '\u{040E}', '\u{045F}', '\u{040F}', '\u{044E}', '\u{042E}', '\u{044A}', '\u{042A}',
'\u{0430}', '\u{0410}', '\u{0431}', '\u{0411}', '\u{0446}', '\u{0426}', '\u{0434}', '\u{0414}',
'\u{0435}', '\u{0415}', '\u{0444}', '\u{0424}', '\u{0433}', '\u{0413}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{0445}', '\u{0425}', '\u{0438}',
'\u{0418}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{0439}', '\u{0419}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{043A}', '\u{041A}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{00A4}',
'\u{043B}', '\u{041B}', '\u{043C}', '\u{041C}', '\u{043D}', '\u{041D}', '\u{043E}', '\u{041E}',
'\u{043F}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{041F}', '\u{044F}', '\u{2580}',
'\u{042F}', '\u{0440}', '\u{0420}', '\u{0441}', '\u{0421}', '\u{0442}', '\u{0422}', '\u{0443}',
'\u{0423}', '\u{0436}', '\u{0416}', '\u{0432}', '\u{0412}', '\u{044C}', '\u{042C}', '\u{2116}',
'\u{00AD}', '\u{044B}', '\u{042B}', '\u{0437}', '\u{0417}', '\u{0448}', '\u{0428}', '\u{044D}',
'\u{042D}', '\u{0449}', '\u{0429}', '\u{0447}', '\u{0427}', '\u{00A7}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP857: [Option<char>; 128] = [
Some('\u{00C7}'),
Some('\u{00FC}'),
Some('\u{00E9}'),
Some('\u{00E2}'),
Some('\u{00E4}'),
Some('\u{00E0}'),
Some('\u{00E5}'),
Some('\u{00E7}'),
Some('\u{00EA}'),
Some('\u{00EB}'),
Some('\u{00E8}'),
Some('\u{00EF}'),
Some('\u{00EE}'),
Some('\u{0131}'),
Some('\u{00C4}'),
Some('\u{00C5}'),
Some('\u{00C9}'),
Some('\u{00E6}'),
Some('\u{00C6}'),
Some('\u{00F4}'),
Some('\u{00F6}'),
Some('\u{00F2}'),
Some('\u{00FB}'),
Some('\u{00F9}'),
Some('\u{0130}'),
Some('\u{00D6}'),
Some('\u{00DC}'),
Some('\u{00F8}'),
Some('\u{00A3}'),
Some('\u{00D8}'),
Some('\u{015E}'),
Some('\u{015F}'),
Some('\u{00E1}'),
Some('\u{00ED}'),
Some('\u{00F3}'),
Some('\u{00FA}'),
Some('\u{00F1}'),
Some('\u{00D1}'),
Some('\u{011E}'),
Some('\u{011F}'),
Some('\u{00BF}'),
Some('\u{00AE}'),
Some('\u{00AC}'),
Some('\u{00BD}'),
Some('\u{00BC}'),
Some('\u{00A1}'),
Some('\u{00AB}'),
Some('\u{00BB}'),
Some('\u{2591}'),
Some('\u{2592}'),
Some('\u{2593}'),
Some('\u{2502}'),
Some('\u{2524}'),
Some('\u{00C1}'),
Some('\u{00C2}'),
Some('\u{00C0}'),
Some('\u{00A9}'),
Some('\u{2563}'),
Some('\u{2551}'),
Some('\u{2557}'),
Some('\u{255D}'),
Some('\u{00A2}'),
Some('\u{00A5}'),
Some('\u{2510}'),
Some('\u{2514}'),
Some('\u{2534}'),
Some('\u{252C}'),
Some('\u{251C}'),
Some('\u{2500}'),
Some('\u{253C}'),
Some('\u{00E3}'),
Some('\u{00C3}'),
Some('\u{255A}'),
Some('\u{2554}'),
Some('\u{2569}'),
Some('\u{2566}'),
Some('\u{2560}'),
Some('\u{2550}'),
Some('\u{256C}'),
Some('\u{00A4}'),
Some('\u{00BA}'),
Some('\u{00AA}'),
Some('\u{00CA}'),
Some('\u{00CB}'),
Some('\u{00C8}'),
None,
Some('\u{00CD}'),
Some('\u{00CE}'),
Some('\u{00CF}'),
Some('\u{2518}'),
Some('\u{250C}'),
Some('\u{2588}'),
Some('\u{2584}'),
Some('\u{00A6}'),
Some('\u{00CC}'),
Some('\u{2580}'),
Some('\u{00D3}'),
Some('\u{00DF}'),
Some('\u{00D4}'),
Some('\u{00D2}'),
Some('\u{00F5}'),
Some('\u{00D5}'),
Some('\u{00B5}'),
None,
Some('\u{00D7}'),
Some('\u{00DA}'),
Some('\u{00DB}'),
Some('\u{00D9}'),
Some('\u{00EC}'),
Some('\u{00FF}'),
Some('\u{00AF}'),
Some('\u{00B4}'),
Some('\u{00AD}'),
Some('\u{00B1}'),
None,
Some('\u{00BE}'),
Some('\u{00B6}'),
Some('\u{00A7}'),
Some('\u{00F7}'),
Some('\u{00B8}'),
Some('\u{00B0}'),
Some('\u{00A8}'),
Some('\u{00B7}'),
Some('\u{00B9}'),
Some('\u{00B3}'),
Some('\u{00B2}'),
Some('\u{25A0}'),
Some('\u{00A0}'),
];
pub static DECODING_TABLE_CP860: [char; 128] = [
'\u{00C7}', '\u{00FC}', '\u{00E9}', '\u{00E2}', '\u{00E3}', '\u{00E0}', '\u{00C1}', '\u{00E7}',
'\u{00EA}', '\u{00CA}', '\u{00E8}', '\u{00CD}', '\u{00D4}', '\u{00EC}', '\u{00C3}', '\u{00C2}',
'\u{00C9}', '\u{00C0}', '\u{00C8}', '\u{00F4}', '\u{00F5}', '\u{00F2}', '\u{00DA}', '\u{00F9}',
'\u{00CC}', '\u{00D5}', '\u{00DC}', '\u{00A2}', '\u{00A3}', '\u{00D9}', '\u{20A7}', '\u{00D3}',
'\u{00E1}', '\u{00ED}', '\u{00F3}', '\u{00FA}', '\u{00F1}', '\u{00D1}', '\u{00AA}', '\u{00BA}',
'\u{00BF}', '\u{00D2}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{00A1}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{2561}', '\u{2562}', '\u{2556}',
'\u{2555}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{255C}', '\u{255B}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{255E}', '\u{255F}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{2567}',
'\u{2568}', '\u{2564}', '\u{2565}', '\u{2559}', '\u{2558}', '\u{2552}', '\u{2553}', '\u{256B}',
'\u{256A}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{03B1}', '\u{00DF}', '\u{0393}', '\u{03C0}', '\u{03A3}', '\u{03C3}', '\u{00B5}', '\u{03C4}',
'\u{03A6}', '\u{0398}', '\u{03A9}', '\u{03B4}', '\u{221E}', '\u{03C6}', '\u{03B5}', '\u{2229}',
'\u{2261}', '\u{00B1}', '\u{2265}', '\u{2264}', '\u{2320}', '\u{2321}', '\u{00F7}', '\u{2248}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{221A}', '\u{207F}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP861: [char; 128] = [
'\u{00C7}', '\u{00FC}', '\u{00E9}', '\u{00E2}', '\u{00E4}', '\u{00E0}', '\u{00E5}', '\u{00E7}',
'\u{00EA}', '\u{00EB}', '\u{00E8}', '\u{00D0}', '\u{00F0}', '\u{00DE}', '\u{00C4}', '\u{00C5}',
'\u{00C9}', '\u{00E6}', '\u{00C6}', '\u{00F4}', '\u{00F6}', '\u{00FE}', '\u{00FB}', '\u{00DD}',
'\u{00FD}', '\u{00D6}', '\u{00DC}', '\u{00F8}', '\u{00A3}', '\u{00D8}', '\u{20A7}', '\u{0192}',
'\u{00E1}', '\u{00ED}', '\u{00F3}', '\u{00FA}', '\u{00C1}', '\u{00CD}', '\u{00D3}', '\u{00DA}',
'\u{00BF}', '\u{2310}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{00A1}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{2561}', '\u{2562}', '\u{2556}',
'\u{2555}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{255C}', '\u{255B}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{255E}', '\u{255F}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{2567}',
'\u{2568}', '\u{2564}', '\u{2565}', '\u{2559}', '\u{2558}', '\u{2552}', '\u{2553}', '\u{256B}',
'\u{256A}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{03B1}', '\u{00DF}', '\u{0393}', '\u{03C0}', '\u{03A3}', '\u{03C3}', '\u{00B5}', '\u{03C4}',
'\u{03A6}', '\u{0398}', '\u{03A9}', '\u{03B4}', '\u{221E}', '\u{03C6}', '\u{03B5}', '\u{2229}',
'\u{2261}', '\u{00B1}', '\u{2265}', '\u{2264}', '\u{2320}', '\u{2321}', '\u{00F7}', '\u{2248}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{221A}', '\u{207F}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP862: [char; 128] = [
'\u{05D0}', '\u{05D1}', '\u{05D2}', '\u{05D3}', '\u{05D4}', '\u{05D5}', '\u{05D6}', '\u{05D7}',
'\u{05D8}', '\u{05D9}', '\u{05DA}', '\u{05DB}', '\u{05DC}', '\u{05DD}', '\u{05DE}', '\u{05DF}',
'\u{05E0}', '\u{05E1}', '\u{05E2}', '\u{05E3}', '\u{05E4}', '\u{05E5}', '\u{05E6}', '\u{05E7}',
'\u{05E8}', '\u{05E9}', '\u{05EA}', '\u{00A2}', '\u{00A3}', '\u{00A5}', '\u{20A7}', '\u{0192}',
'\u{00E1}', '\u{00ED}', '\u{00F3}', '\u{00FA}', '\u{00F1}', '\u{00D1}', '\u{00AA}', '\u{00BA}',
'\u{00BF}', '\u{2310}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{00A1}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{2561}', '\u{2562}', '\u{2556}',
'\u{2555}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{255C}', '\u{255B}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{255E}', '\u{255F}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{2567}',
'\u{2568}', '\u{2564}', '\u{2565}', '\u{2559}', '\u{2558}', '\u{2552}', '\u{2553}', '\u{256B}',
'\u{256A}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{03B1}', '\u{00DF}', '\u{0393}', '\u{03C0}', '\u{03A3}', '\u{03C3}', '\u{00B5}', '\u{03C4}',
'\u{03A6}', '\u{0398}', '\u{03A9}', '\u{03B4}', '\u{221E}', '\u{03C6}', '\u{03B5}', '\u{2229}',
'\u{2261}', '\u{00B1}', '\u{2265}', '\u{2264}', '\u{2320}', '\u{2321}', '\u{00F7}', '\u{2248}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{221A}', '\u{207F}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP863: [char; 128] = [
'\u{00C7}', '\u{00FC}', '\u{00E9}', '\u{00E2}', '\u{00C2}', '\u{00E0}', '\u{00B6}', '\u{00E7}',
'\u{00EA}', '\u{00EB}', '\u{00E8}', '\u{00EF}', '\u{00EE}', '\u{2017}', '\u{00C0}', '\u{00A7}',
'\u{00C9}', '\u{00C8}', '\u{00CA}', '\u{00F4}', '\u{00CB}', '\u{00CF}', '\u{00FB}', '\u{00F9}',
'\u{00A4}', '\u{00D4}', '\u{00DC}', '\u{00A2}', '\u{00A3}', '\u{00D9}', '\u{00DB}', '\u{0192}',
'\u{00A6}', '\u{00B4}', '\u{00F3}', '\u{00FA}', '\u{00A8}', '\u{00B8}', '\u{00B3}', '\u{00AF}',
'\u{00CE}', '\u{2310}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{00BE}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{2561}', '\u{2562}', '\u{2556}',
'\u{2555}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{255C}', '\u{255B}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{255E}', '\u{255F}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{2567}',
'\u{2568}', '\u{2564}', '\u{2565}', '\u{2559}', '\u{2558}', '\u{2552}', '\u{2553}', '\u{256B}',
'\u{256A}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{03B1}', '\u{00DF}', '\u{0393}', '\u{03C0}', '\u{03A3}', '\u{03C3}', '\u{00B5}', '\u{03C4}',
'\u{03A6}', '\u{0398}', '\u{03A9}', '\u{03B4}', '\u{221E}', '\u{03C6}', '\u{03B5}', '\u{2229}',
'\u{2261}', '\u{00B1}', '\u{2265}', '\u{2264}', '\u{2320}', '\u{2321}', '\u{00F7}', '\u{2248}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{221A}', '\u{207F}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP864: [Option<char>; 128] = [
Some('\u{00B0}'),
Some('\u{00B7}'),
Some('\u{2219}'),
Some('\u{221A}'),
Some('\u{2592}'),
Some('\u{2500}'),
Some('\u{2502}'),
Some('\u{253C}'),
Some('\u{2524}'),
Some('\u{252C}'),
Some('\u{251C}'),
Some('\u{2534}'),
Some('\u{2510}'),
Some('\u{250C}'),
Some('\u{2514}'),
Some('\u{2518}'),
Some('\u{03B2}'),
Some('\u{221E}'),
Some('\u{03C6}'),
Some('\u{00B1}'),
Some('\u{00BD}'),
Some('\u{00BC}'),
Some('\u{2248}'),
Some('\u{00AB}'),
Some('\u{00BB}'),
Some('\u{FEF7}'),
Some('\u{FEF8}'),
None,
None,
Some('\u{FEFB}'),
Some('\u{FEFC}'),
None,
Some('\u{00A0}'),
Some('\u{00AD}'),
Some('\u{FE82}'),
Some('\u{00A3}'),
Some('\u{00A4}'),
Some('\u{FE84}'),
None,
None,
Some('\u{FE8E}'),
Some('\u{FE8F}'),
Some('\u{FE95}'),
Some('\u{FE99}'),
Some('\u{060C}'),
Some('\u{FE9D}'),
Some('\u{FEA1}'),
Some('\u{FEA5}'),
Some('\u{0660}'),
Some('\u{0661}'),
Some('\u{0662}'),
Some('\u{0663}'),
Some('\u{0664}'),
Some('\u{0665}'),
Some('\u{0666}'),
Some('\u{0667}'),
Some('\u{0668}'),
Some('\u{0669}'),
Some('\u{FED1}'),
Some('\u{061B}'),
Some('\u{FEB1}'),
Some('\u{FEB5}'),
Some('\u{FEB9}'),
Some('\u{061F}'),
Some('\u{00A2}'),
Some('\u{FE80}'),
Some('\u{FE81}'),
Some('\u{FE83}'),
Some('\u{FE85}'),
Some('\u{FECA}'),
Some('\u{FE8B}'),
Some('\u{FE8D}'),
Some('\u{FE91}'),
Some('\u{FE93}'),
Some('\u{FE97}'),
Some('\u{FE9B}'),
Some('\u{FE9F}'),
Some('\u{FEA3}'),
Some('\u{FEA7}'),
Some('\u{FEA9}'),
Some('\u{FEAB}'),
Some('\u{FEAD}'),
Some('\u{FEAF}'),
Some('\u{FEB3}'),
Some('\u{FEB7}'),
Some('\u{FEBB}'),
Some('\u{FEBF}'),
Some('\u{FEC1}'),
Some('\u{FEC5}'),
Some('\u{FECB}'),
Some('\u{FECF}'),
Some('\u{00A6}'),
Some('\u{00AC}'),
Some('\u{00F7}'),
Some('\u{00D7}'),
Some('\u{FEC9}'),
Some('\u{0640}'),
Some('\u{FED3}'),
Some('\u{FED7}'),
Some('\u{FEDB}'),
Some('\u{FEDF}'),
Some('\u{FEE3}'),
Some('\u{FEE7}'),
Some('\u{FEEB}'),
Some('\u{FEED}'),
Some('\u{FEEF}'),
Some('\u{FEF3}'),
Some('\u{FEBD}'),
Some('\u{FECC}'),
Some('\u{FECE}'),
Some('\u{FECD}'),
Some('\u{FEE1}'),
Some('\u{FE7D}'),
Some('\u{0651}'),
Some('\u{FEE5}'),
Some('\u{FEE9}'),
Some('\u{FEEC}'),
Some('\u{FEF0}'),
Some('\u{FEF2}'),
Some('\u{FED0}'),
Some('\u{FED5}'),
Some('\u{FEF5}'),
Some('\u{FEF6}'),
Some('\u{FEDD}'),
Some('\u{FED9}'),
Some('\u{FEF1}'),
Some('\u{25A0}'),
None,
];
pub static DECODING_TABLE_CP865: [char; 128] = [
'\u{00C7}', '\u{00FC}', '\u{00E9}', '\u{00E2}', '\u{00E4}', '\u{00E0}', '\u{00E5}', '\u{00E7}',
'\u{00EA}', '\u{00EB}', '\u{00E8}', '\u{00EF}', '\u{00EE}', '\u{00EC}', '\u{00C4}', '\u{00C5}',
'\u{00C9}', '\u{00E6}', '\u{00C6}', '\u{00F4}', '\u{00F6}', '\u{00F2}', '\u{00FB}', '\u{00F9}',
'\u{00FF}', '\u{00D6}', '\u{00DC}', '\u{00F8}', '\u{00A3}', '\u{00D8}', '\u{20A7}', '\u{0192}',
'\u{00E1}', '\u{00ED}', '\u{00F3}', '\u{00FA}', '\u{00F1}', '\u{00D1}', '\u{00AA}', '\u{00BA}',
'\u{00BF}', '\u{2310}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{00A1}', '\u{00AB}', '\u{00A4}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{2561}', '\u{2562}', '\u{2556}',
'\u{2555}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{255C}', '\u{255B}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{255E}', '\u{255F}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{2567}',
'\u{2568}', '\u{2564}', '\u{2565}', '\u{2559}', '\u{2558}', '\u{2552}', '\u{2553}', '\u{256B}',
'\u{256A}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{03B1}', '\u{00DF}', '\u{0393}', '\u{03C0}', '\u{03A3}', '\u{03C3}', '\u{00B5}', '\u{03C4}',
'\u{03A6}', '\u{0398}', '\u{03A9}', '\u{03B4}', '\u{221E}', '\u{03C6}', '\u{03B5}', '\u{2229}',
'\u{2261}', '\u{00B1}', '\u{2265}', '\u{2264}', '\u{2320}', '\u{2321}', '\u{00F7}', '\u{2248}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{221A}', '\u{207F}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP866: [char; 128] = [
'\u{0410}', '\u{0411}', '\u{0412}', '\u{0413}', '\u{0414}', '\u{0415}', '\u{0416}', '\u{0417}',
'\u{0418}', '\u{0419}', '\u{041A}', '\u{041B}', '\u{041C}', '\u{041D}', '\u{041E}', '\u{041F}',
'\u{0420}', '\u{0421}', '\u{0422}', '\u{0423}', '\u{0424}', '\u{0425}', '\u{0426}', '\u{0427}',
'\u{0428}', '\u{0429}', '\u{042A}', '\u{042B}', '\u{042C}', '\u{042D}', '\u{042E}', '\u{042F}',
'\u{0430}', '\u{0431}', '\u{0432}', '\u{0433}', '\u{0434}', '\u{0435}', '\u{0436}', '\u{0437}',
'\u{0438}', '\u{0439}', '\u{043A}', '\u{043B}', '\u{043C}', '\u{043D}', '\u{043E}', '\u{043F}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{2561}', '\u{2562}', '\u{2556}',
'\u{2555}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{255C}', '\u{255B}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{255E}', '\u{255F}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{2567}',
'\u{2568}', '\u{2564}', '\u{2565}', '\u{2559}', '\u{2558}', '\u{2552}', '\u{2553}', '\u{256B}',
'\u{256A}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{258C}', '\u{2590}', '\u{2580}',
'\u{0440}', '\u{0441}', '\u{0442}', '\u{0443}', '\u{0444}', '\u{0445}', '\u{0446}', '\u{0447}',
'\u{0448}', '\u{0449}', '\u{044A}', '\u{044B}', '\u{044C}', '\u{044D}', '\u{044E}', '\u{044F}',
'\u{0401}', '\u{0451}', '\u{0404}', '\u{0454}', '\u{0407}', '\u{0457}', '\u{040E}', '\u{045E}',
'\u{00B0}', '\u{2219}', '\u{00B7}', '\u{221A}', '\u{2116}', '\u{00A4}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP869: [Option<char>; 128] = [
None,
None,
None,
None,
None,
None,
Some('\u{0386}'),
None,
Some('\u{00B7}'),
Some('\u{00AC}'),
Some('\u{00A6}'),
Some('\u{2018}'),
Some('\u{2019}'),
Some('\u{0388}'),
Some('\u{2015}'),
Some('\u{0389}'),
Some('\u{038A}'),
Some('\u{03AA}'),
Some('\u{038C}'),
None,
None,
Some('\u{038E}'),
Some('\u{03AB}'),
Some('\u{00A9}'),
Some('\u{038F}'),
Some('\u{00B2}'),
Some('\u{00B3}'),
Some('\u{03AC}'),
Some('\u{00A3}'),
Some('\u{03AD}'),
Some('\u{03AE}'),
Some('\u{03AF}'),
Some('\u{03CA}'),
Some('\u{0390}'),
Some('\u{03CC}'),
Some('\u{03CD}'),
Some('\u{0391}'),
Some('\u{0392}'),
Some('\u{0393}'),
Some('\u{0394}'),
Some('\u{0395}'),
Some('\u{0396}'),
Some('\u{0397}'),
Some('\u{00BD}'),
Some('\u{0398}'),
Some('\u{0399}'),
Some('\u{00AB}'),
Some('\u{00BB}'),
Some('\u{2591}'),
Some('\u{2592}'),
Some('\u{2593}'),
Some('\u{2502}'),
Some('\u{2524}'),
Some('\u{039A}'),
Some('\u{039B}'),
Some('\u{039C}'),
Some('\u{039D}'),
Some('\u{2563}'),
Some('\u{2551}'),
Some('\u{2557}'),
Some('\u{255D}'),
Some('\u{039E}'),
Some('\u{039F}'),
Some('\u{2510}'),
Some('\u{2514}'),
Some('\u{2534}'),
Some('\u{252C}'),
Some('\u{251C}'),
Some('\u{2500}'),
Some('\u{253C}'),
Some('\u{03A0}'),
Some('\u{03A1}'),
Some('\u{255A}'),
Some('\u{2554}'),
Some('\u{2569}'),
Some('\u{2566}'),
Some('\u{2560}'),
Some('\u{2550}'),
Some('\u{256C}'),
Some('\u{03A3}'),
Some('\u{03A4}'),
Some('\u{03A5}'),
Some('\u{03A6}'),
Some('\u{03A7}'),
Some('\u{03A8}'),
Some('\u{03A9}'),
Some('\u{03B1}'),
Some('\u{03B2}'),
Some('\u{03B3}'),
Some('\u{2518}'),
Some('\u{250C}'),
Some('\u{2588}'),
Some('\u{2584}'),
Some('\u{03B4}'),
Some('\u{03B5}'),
Some('\u{2580}'),
Some('\u{03B6}'),
Some('\u{03B7}'),
Some('\u{03B8}'),
Some('\u{03B9}'),
Some('\u{03BA}'),
Some('\u{03BB}'),
Some('\u{03BC}'),
Some('\u{03BD}'),
Some('\u{03BE}'),
Some('\u{03BF}'),
Some('\u{03C0}'),
Some('\u{03C1}'),
Some('\u{03C3}'),
Some('\u{03C2}'),
Some('\u{03C4}'),
Some('\u{0384}'),
Some('\u{00AD}'),
Some('\u{00B1}'),
Some('\u{03C5}'),
Some('\u{03C6}'),
Some('\u{03C7}'),
Some('\u{00A7}'),
Some('\u{03C8}'),
Some('\u{0385}'),
Some('\u{00B0}'),
Some('\u{00A8}'),
Some('\u{03C9}'),
Some('\u{03CB}'),
Some('\u{03B0}'),
Some('\u{03CE}'),
Some('\u{25A0}'),
Some('\u{00A0}'),
];
pub static DECODING_TABLE_CP720: [Option<char>; 128] = [
None,
None,
Some('\u{00E9}'),
Some('\u{00E2}'),
None,
Some('\u{00E0}'),
None,
Some('\u{00E7}'),
Some('\u{00EA}'),
Some('\u{00EB}'),
Some('\u{00E8}'),
Some('\u{00EF}'),
Some('\u{00EE}'),
None,
None,
None,
None,
Some('\u{0651}'),
Some('\u{0652}'),
Some('\u{00F4}'),
Some('\u{00A4}'),
Some('\u{0640}'),
Some('\u{00FB}'),
Some('\u{00F9}'),
Some('\u{0621}'),
Some('\u{0622}'),
Some('\u{0623}'),
Some('\u{0624}'),
Some('\u{00A3}'),
Some('\u{0625}'),
Some('\u{0626}'),
Some('\u{0627}'),
Some('\u{0628}'),
Some('\u{0629}'),
Some('\u{062A}'),
Some('\u{062B}'),
Some('\u{062C}'),
Some('\u{062D}'),
Some('\u{062E}'),
Some('\u{062F}'),
Some('\u{0630}'),
Some('\u{0631}'),
Some('\u{0632}'),
Some('\u{0633}'),
Some('\u{0634}'),
Some('\u{0635}'),
Some('\u{00AB}'),
Some('\u{00BB}'),
Some('\u{2591}'),
Some('\u{2592}'),
Some('\u{2593}'),
Some('\u{2502}'),
Some('\u{2524}'),
Some('\u{2561}'),
Some('\u{2562}'),
Some('\u{2556}'),
Some('\u{2555}'),
Some('\u{2563}'),
Some('\u{2551}'),
Some('\u{2557}'),
Some('\u{255D}'),
Some('\u{255C}'),
Some('\u{255B}'),
Some('\u{2510}'),
Some('\u{2514}'),
Some('\u{2534}'),
Some('\u{252C}'),
Some('\u{251C}'),
Some('\u{2500}'),
Some('\u{253C}'),
Some('\u{255E}'),
Some('\u{255F}'),
Some('\u{255A}'),
Some('\u{2554}'),
Some('\u{2569}'),
Some('\u{2566}'),
Some('\u{2560}'),
Some('\u{2550}'),
Some('\u{256C}'),
Some('\u{2567}'),
Some('\u{2568}'),
Some('\u{2564}'),
Some('\u{2565}'),
Some('\u{2559}'),
Some('\u{2558}'),
Some('\u{2552}'),
Some('\u{2553}'),
Some('\u{256B}'),
Some('\u{256A}'),
Some('\u{2518}'),
Some('\u{250C}'),
Some('\u{2588}'),
Some('\u{2584}'),
Some('\u{258C}'),
Some('\u{2590}'),
Some('\u{2580}'),
Some('\u{0636}'),
Some('\u{0637}'),
Some('\u{0638}'),
Some('\u{0639}'),
Some('\u{063A}'),
Some('\u{0641}'),
Some('\u{00B5}'),
Some('\u{0642}'),
Some('\u{0643}'),
Some('\u{0644}'),
Some('\u{0645}'),
Some('\u{0646}'),
Some('\u{0647}'),
Some('\u{0648}'),
Some('\u{0649}'),
Some('\u{064A}'),
Some('\u{2261}'),
Some('\u{064B}'),
Some('\u{064C}'),
Some('\u{064D}'),
Some('\u{064E}'),
Some('\u{064F}'),
Some('\u{0650}'),
Some('\u{2248}'),
Some('\u{00B0}'),
Some('\u{2219}'),
Some('\u{00B7}'),
Some('\u{221A}'),
Some('\u{207F}'),
Some('\u{00B2}'),
Some('\u{25A0}'),
Some('\u{00A0}'),
];
pub static DECODING_TABLE_CP858: [char; 128] = [
'\u{00C7}', '\u{00FC}', '\u{00E9}', '\u{00E2}', '\u{00E4}', '\u{00E0}', '\u{00E5}', '\u{00E7}',
'\u{00EA}', '\u{00EB}', '\u{00E8}', '\u{00EF}', '\u{00EE}', '\u{00EC}', '\u{00C4}', '\u{00C5}',
'\u{00C9}', '\u{00E6}', '\u{00C6}', '\u{00F4}', '\u{00F6}', '\u{00F2}', '\u{00FB}', '\u{00F9}',
'\u{00FF}', '\u{00D6}', '\u{00DC}', '\u{00F8}', '\u{00A3}', '\u{00D8}', '\u{00D7}', '\u{0192}',
'\u{00E1}', '\u{00ED}', '\u{00F3}', '\u{00FA}', '\u{00F1}', '\u{00D1}', '\u{00AA}', '\u{00BA}',
'\u{00BF}', '\u{00AE}', '\u{00AC}', '\u{00BD}', '\u{00BC}', '\u{00A1}', '\u{00AB}', '\u{00BB}',
'\u{2591}', '\u{2592}', '\u{2593}', '\u{2502}', '\u{2524}', '\u{00C1}', '\u{00C2}', '\u{00C0}',
'\u{00A9}', '\u{2563}', '\u{2551}', '\u{2557}', '\u{255D}', '\u{00A2}', '\u{00A5}', '\u{2510}',
'\u{2514}', '\u{2534}', '\u{252C}', '\u{251C}', '\u{2500}', '\u{253C}', '\u{00E3}', '\u{00C3}',
'\u{255A}', '\u{2554}', '\u{2569}', '\u{2566}', '\u{2560}', '\u{2550}', '\u{256C}', '\u{00A4}',
'\u{00F0}', '\u{00D0}', '\u{00CA}', '\u{00CB}', '\u{00C8}', '\u{20AC}', '\u{00CD}', '\u{00CE}',
'\u{00CF}', '\u{2518}', '\u{250C}', '\u{2588}', '\u{2584}', '\u{00A6}', '\u{00CC}', '\u{2580}',
'\u{00D3}', '\u{00DF}', '\u{00D4}', '\u{00D2}', '\u{00F5}', '\u{00D5}', '\u{00B5}', '\u{00FE}',
'\u{00DE}', '\u{00DA}', '\u{00DB}', '\u{00D9}', '\u{00FD}', '\u{00DD}', '\u{00AF}', '\u{00B4}',
'\u{00AD}', '\u{00B1}', '\u{2017}', '\u{00BE}', '\u{00B6}', '\u{00A7}', '\u{00F7}', '\u{00B8}',
'\u{00B0}', '\u{00A8}', '\u{00B7}', '\u{00B9}', '\u{00B3}', '\u{00B2}', '\u{25A0}', '\u{00A0}',
];
pub static DECODING_TABLE_CP874: [Option<char>; 128] = [
Some('\u{20AC}'),
Some('\u{0081}'),
Some('\u{0082}'),
Some('\u{0083}'),
Some('\u{0084}'),
Some('\u{2026}'),
Some('\u{0086}'),
Some('\u{0087}'),
Some('\u{0088}'),
Some('\u{0089}'),
Some('\u{008A}'),
Some('\u{008B}'),
Some('\u{008C}'),
Some('\u{008D}'),
Some('\u{008E}'),
Some('\u{008F}'),
Some('\u{0090}'),
Some('\u{2018}'),
Some('\u{2019}'),
Some('\u{201C}'),
Some('\u{201D}'),
Some('\u{2022}'),
Some('\u{2013}'),
Some('\u{2014}'),
Some('\u{0098}'),
Some('\u{0099}'),
Some('\u{009A}'),
Some('\u{009B}'),
Some('\u{009C}'),
Some('\u{009D}'),
Some('\u{009E}'),
Some('\u{009F}'),
Some('\u{00A0}'),
Some('\u{0E01}'),
Some('\u{0E02}'),
Some('\u{0E03}'),
Some('\u{0E04}'),
Some('\u{0E05}'),
Some('\u{0E06}'),
Some('\u{0E07}'),
Some('\u{0E08}'),
Some('\u{0E09}'),
Some('\u{0E0A}'),
Some('\u{0E0B}'),
Some('\u{0E0C}'),
Some('\u{0E0D}'),
Some('\u{0E0E}'),
Some('\u{0E0F}'),
Some('\u{0E10}'),
Some('\u{0E11}'),
Some('\u{0E12}'),
Some('\u{0E13}'),
Some('\u{0E14}'),
Some('\u{0E15}'),
Some('\u{0E16}'),
Some('\u{0E17}'),
Some('\u{0E18}'),
Some('\u{0E19}'),
Some('\u{0E1A}'),
Some('\u{0E1B}'),
Some('\u{0E1C}'),
Some('\u{0E1D}'),
Some('\u{0E1E}'),
Some('\u{0E1F}'),
Some('\u{0E20}'),
Some('\u{0E21}'),
Some('\u{0E22}'),
Some('\u{0E23}'),
Some('\u{0E24}'),
Some('\u{0E25}'),
Some('\u{0E26}'),
Some('\u{0E27}'),
Some('\u{0E28}'),
Some('\u{0E29}'),
Some('\u{0E2A}'),
Some('\u{0E2B}'),
Some('\u{0E2C}'),
Some('\u{0E2D}'),
Some('\u{0E2E}'),
Some('\u{0E2F}'),
Some('\u{0E30}'),
Some('\u{0E31}'),
Some('\u{0E32}'),
Some('\u{0E33}'),
Some('\u{0E34}'),
Some('\u{0E35}'),
Some('\u{0E36}'),
Some('\u{0E37}'),
Some('\u{0E38}'),
Some('\u{0E39}'),
Some('\u{0E3A}'),
None,
None,
None,
None,
Some('\u{0E3F}'),
Some('\u{0E40}'),
Some('\u{0E41}'),
Some('\u{0E42}'),
Some('\u{0E43}'),
Some('\u{0E44}'),
Some('\u{0E45}'),
Some('\u{0E46}'),
Some('\u{0E47}'),
Some('\u{0E48}'),
Some('\u{0E49}'),
Some('\u{0E4A}'),
Some('\u{0E4B}'),
Some('\u{0E4C}'),
Some('\u{0E4D}'),
Some('\u{0E4E}'),
Some('\u{0E4F}'),
Some('\u{0E50}'),
Some('\u{0E51}'),
Some('\u{0E52}'),
Some('\u{0E53}'),
Some('\u{0E54}'),
Some('\u{0E55}'),
Some('\u{0E56}'),
Some('\u{0E57}'),
Some('\u{0E58}'),
Some('\u{0E59}'),
Some('\u{0E5A}'),
Some('\u{0E5B}'),
None,
None,
None,
None,
];
lazy_static! {
pub static ref ENCODING_TABLE_CP437: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E4}', 0x84);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00E5}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00EF}', 0x8B);
m.insert('\u{00EE}', 0x8C);
m.insert('\u{00EC}', 0x8D);
m.insert('\u{00C4}', 0x8E);
m.insert('\u{00C5}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00E6}', 0x91);
m.insert('\u{00C6}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00F6}', 0x94);
m.insert('\u{00F2}', 0x95);
m.insert('\u{00FB}', 0x96);
m.insert('\u{00F9}', 0x97);
m.insert('\u{00FF}', 0x98);
m.insert('\u{00D6}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00A2}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00A5}', 0x9D);
m.insert('\u{20A7}', 0x9E);
m.insert('\u{0192}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00F1}', 0xA4);
m.insert('\u{00D1}', 0xA5);
m.insert('\u{00AA}', 0xA6);
m.insert('\u{00BA}', 0xA7);
m.insert('\u{00BF}', 0xA8);
m.insert('\u{2310}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00A1}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{03B1}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{0393}', 0xE2);
m.insert('\u{03C0}', 0xE3);
m.insert('\u{03A3}', 0xE4);
m.insert('\u{03C3}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{03C4}', 0xE7);
m.insert('\u{03A6}', 0xE8);
m.insert('\u{0398}', 0xE9);
m.insert('\u{03A9}', 0xEA);
m.insert('\u{03B4}', 0xEB);
m.insert('\u{221E}', 0xEC);
m.insert('\u{03C6}', 0xED);
m.insert('\u{03B5}', 0xEE);
m.insert('\u{2229}', 0xEF);
m.insert('\u{2261}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2265}', 0xF2);
m.insert('\u{2264}', 0xF3);
m.insert('\u{2320}', 0xF4);
m.insert('\u{2321}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{2248}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{207F}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP737: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{0391}', 0x80);
m.insert('\u{0392}', 0x81);
m.insert('\u{0393}', 0x82);
m.insert('\u{0394}', 0x83);
m.insert('\u{0395}', 0x84);
m.insert('\u{0396}', 0x85);
m.insert('\u{0397}', 0x86);
m.insert('\u{0398}', 0x87);
m.insert('\u{0399}', 0x88);
m.insert('\u{039A}', 0x89);
m.insert('\u{039B}', 0x8A);
m.insert('\u{039C}', 0x8B);
m.insert('\u{039D}', 0x8C);
m.insert('\u{039E}', 0x8D);
m.insert('\u{039F}', 0x8E);
m.insert('\u{03A0}', 0x8F);
m.insert('\u{03A1}', 0x90);
m.insert('\u{03A3}', 0x91);
m.insert('\u{03A4}', 0x92);
m.insert('\u{03A5}', 0x93);
m.insert('\u{03A6}', 0x94);
m.insert('\u{03A7}', 0x95);
m.insert('\u{03A8}', 0x96);
m.insert('\u{03A9}', 0x97);
m.insert('\u{03B1}', 0x98);
m.insert('\u{03B2}', 0x99);
m.insert('\u{03B3}', 0x9A);
m.insert('\u{03B4}', 0x9B);
m.insert('\u{03B5}', 0x9C);
m.insert('\u{03B6}', 0x9D);
m.insert('\u{03B7}', 0x9E);
m.insert('\u{03B8}', 0x9F);
m.insert('\u{03B9}', 0xA0);
m.insert('\u{03BA}', 0xA1);
m.insert('\u{03BB}', 0xA2);
m.insert('\u{03BC}', 0xA3);
m.insert('\u{03BD}', 0xA4);
m.insert('\u{03BE}', 0xA5);
m.insert('\u{03BF}', 0xA6);
m.insert('\u{03C0}', 0xA7);
m.insert('\u{03C1}', 0xA8);
m.insert('\u{03C3}', 0xA9);
m.insert('\u{03C2}', 0xAA);
m.insert('\u{03C4}', 0xAB);
m.insert('\u{03C5}', 0xAC);
m.insert('\u{03C6}', 0xAD);
m.insert('\u{03C7}', 0xAE);
m.insert('\u{03C8}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{03C9}', 0xE0);
m.insert('\u{03AC}', 0xE1);
m.insert('\u{03AD}', 0xE2);
m.insert('\u{03AE}', 0xE3);
m.insert('\u{03CA}', 0xE4);
m.insert('\u{03AF}', 0xE5);
m.insert('\u{03CC}', 0xE6);
m.insert('\u{03CD}', 0xE7);
m.insert('\u{03CB}', 0xE8);
m.insert('\u{03CE}', 0xE9);
m.insert('\u{0386}', 0xEA);
m.insert('\u{0388}', 0xEB);
m.insert('\u{0389}', 0xEC);
m.insert('\u{038A}', 0xED);
m.insert('\u{038C}', 0xEE);
m.insert('\u{038E}', 0xEF);
m.insert('\u{038F}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2265}', 0xF2);
m.insert('\u{2264}', 0xF3);
m.insert('\u{03AA}', 0xF4);
m.insert('\u{03AB}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{2248}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{207F}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP775: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{0106}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{0101}', 0x83);
m.insert('\u{00E4}', 0x84);
m.insert('\u{0123}', 0x85);
m.insert('\u{00E5}', 0x86);
m.insert('\u{0107}', 0x87);
m.insert('\u{0142}', 0x88);
m.insert('\u{0113}', 0x89);
m.insert('\u{0156}', 0x8A);
m.insert('\u{0157}', 0x8B);
m.insert('\u{012B}', 0x8C);
m.insert('\u{0179}', 0x8D);
m.insert('\u{00C4}', 0x8E);
m.insert('\u{00C5}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00E6}', 0x91);
m.insert('\u{00C6}', 0x92);
m.insert('\u{014D}', 0x93);
m.insert('\u{00F6}', 0x94);
m.insert('\u{0122}', 0x95);
m.insert('\u{00A2}', 0x96);
m.insert('\u{015A}', 0x97);
m.insert('\u{015B}', 0x98);
m.insert('\u{00D6}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00F8}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00D8}', 0x9D);
m.insert('\u{00D7}', 0x9E);
m.insert('\u{00A4}', 0x9F);
m.insert('\u{0100}', 0xA0);
m.insert('\u{012A}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{017B}', 0xA3);
m.insert('\u{017C}', 0xA4);
m.insert('\u{017A}', 0xA5);
m.insert('\u{201D}', 0xA6);
m.insert('\u{00A6}', 0xA7);
m.insert('\u{00A9}', 0xA8);
m.insert('\u{00AE}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{0141}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{0104}', 0xB5);
m.insert('\u{010C}', 0xB6);
m.insert('\u{0118}', 0xB7);
m.insert('\u{0116}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{012E}', 0xBD);
m.insert('\u{0160}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{0172}', 0xC6);
m.insert('\u{016A}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{017D}', 0xCF);
m.insert('\u{0105}', 0xD0);
m.insert('\u{010D}', 0xD1);
m.insert('\u{0119}', 0xD2);
m.insert('\u{0117}', 0xD3);
m.insert('\u{012F}', 0xD4);
m.insert('\u{0161}', 0xD5);
m.insert('\u{0173}', 0xD6);
m.insert('\u{016B}', 0xD7);
m.insert('\u{017E}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{00D3}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{014C}', 0xE2);
m.insert('\u{0143}', 0xE3);
m.insert('\u{00F5}', 0xE4);
m.insert('\u{00D5}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{0144}', 0xE7);
m.insert('\u{0136}', 0xE8);
m.insert('\u{0137}', 0xE9);
m.insert('\u{013B}', 0xEA);
m.insert('\u{013C}', 0xEB);
m.insert('\u{0146}', 0xEC);
m.insert('\u{0112}', 0xED);
m.insert('\u{0145}', 0xEE);
m.insert('\u{2019}', 0xEF);
m.insert('\u{00AD}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{201C}', 0xF2);
m.insert('\u{00BE}', 0xF3);
m.insert('\u{00B6}', 0xF4);
m.insert('\u{00A7}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{201E}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{00B9}', 0xFB);
m.insert('\u{00B3}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP850: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E4}', 0x84);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00E5}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00EF}', 0x8B);
m.insert('\u{00EE}', 0x8C);
m.insert('\u{00EC}', 0x8D);
m.insert('\u{00C4}', 0x8E);
m.insert('\u{00C5}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00E6}', 0x91);
m.insert('\u{00C6}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00F6}', 0x94);
m.insert('\u{00F2}', 0x95);
m.insert('\u{00FB}', 0x96);
m.insert('\u{00F9}', 0x97);
m.insert('\u{00FF}', 0x98);
m.insert('\u{00D6}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00F8}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00D8}', 0x9D);
m.insert('\u{00D7}', 0x9E);
m.insert('\u{0192}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00F1}', 0xA4);
m.insert('\u{00D1}', 0xA5);
m.insert('\u{00AA}', 0xA6);
m.insert('\u{00BA}', 0xA7);
m.insert('\u{00BF}', 0xA8);
m.insert('\u{00AE}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00A1}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{00C1}', 0xB5);
m.insert('\u{00C2}', 0xB6);
m.insert('\u{00C0}', 0xB7);
m.insert('\u{00A9}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{00A2}', 0xBD);
m.insert('\u{00A5}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{00E3}', 0xC6);
m.insert('\u{00C3}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{00A4}', 0xCF);
m.insert('\u{00F0}', 0xD0);
m.insert('\u{00D0}', 0xD1);
m.insert('\u{00CA}', 0xD2);
m.insert('\u{00CB}', 0xD3);
m.insert('\u{00C8}', 0xD4);
m.insert('\u{0131}', 0xD5);
m.insert('\u{00CD}', 0xD6);
m.insert('\u{00CE}', 0xD7);
m.insert('\u{00CF}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{00A6}', 0xDD);
m.insert('\u{00CC}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{00D3}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{00D4}', 0xE2);
m.insert('\u{00D2}', 0xE3);
m.insert('\u{00F5}', 0xE4);
m.insert('\u{00D5}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{00FE}', 0xE7);
m.insert('\u{00DE}', 0xE8);
m.insert('\u{00DA}', 0xE9);
m.insert('\u{00DB}', 0xEA);
m.insert('\u{00D9}', 0xEB);
m.insert('\u{00FD}', 0xEC);
m.insert('\u{00DD}', 0xED);
m.insert('\u{00AF}', 0xEE);
m.insert('\u{00B4}', 0xEF);
m.insert('\u{00AD}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2017}', 0xF2);
m.insert('\u{00BE}', 0xF3);
m.insert('\u{00B6}', 0xF4);
m.insert('\u{00A7}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{00B8}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{00A8}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{00B9}', 0xFB);
m.insert('\u{00B3}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP852: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E4}', 0x84);
m.insert('\u{016F}', 0x85);
m.insert('\u{0107}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{0142}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{0150}', 0x8A);
m.insert('\u{0151}', 0x8B);
m.insert('\u{00EE}', 0x8C);
m.insert('\u{0179}', 0x8D);
m.insert('\u{00C4}', 0x8E);
m.insert('\u{0106}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{0139}', 0x91);
m.insert('\u{013A}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00F6}', 0x94);
m.insert('\u{013D}', 0x95);
m.insert('\u{013E}', 0x96);
m.insert('\u{015A}', 0x97);
m.insert('\u{015B}', 0x98);
m.insert('\u{00D6}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{0164}', 0x9B);
m.insert('\u{0165}', 0x9C);
m.insert('\u{0141}', 0x9D);
m.insert('\u{00D7}', 0x9E);
m.insert('\u{010D}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{0104}', 0xA4);
m.insert('\u{0105}', 0xA5);
m.insert('\u{017D}', 0xA6);
m.insert('\u{017E}', 0xA7);
m.insert('\u{0118}', 0xA8);
m.insert('\u{0119}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{017A}', 0xAB);
m.insert('\u{010C}', 0xAC);
m.insert('\u{015F}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{00C1}', 0xB5);
m.insert('\u{00C2}', 0xB6);
m.insert('\u{011A}', 0xB7);
m.insert('\u{015E}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{017B}', 0xBD);
m.insert('\u{017C}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{0102}', 0xC6);
m.insert('\u{0103}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{00A4}', 0xCF);
m.insert('\u{0111}', 0xD0);
m.insert('\u{0110}', 0xD1);
m.insert('\u{010E}', 0xD2);
m.insert('\u{00CB}', 0xD3);
m.insert('\u{010F}', 0xD4);
m.insert('\u{0147}', 0xD5);
m.insert('\u{00CD}', 0xD6);
m.insert('\u{00CE}', 0xD7);
m.insert('\u{011B}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{0162}', 0xDD);
m.insert('\u{016E}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{00D3}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{00D4}', 0xE2);
m.insert('\u{0143}', 0xE3);
m.insert('\u{0144}', 0xE4);
m.insert('\u{0148}', 0xE5);
m.insert('\u{0160}', 0xE6);
m.insert('\u{0161}', 0xE7);
m.insert('\u{0154}', 0xE8);
m.insert('\u{00DA}', 0xE9);
m.insert('\u{0155}', 0xEA);
m.insert('\u{0170}', 0xEB);
m.insert('\u{00FD}', 0xEC);
m.insert('\u{00DD}', 0xED);
m.insert('\u{0163}', 0xEE);
m.insert('\u{00B4}', 0xEF);
m.insert('\u{00AD}', 0xF0);
m.insert('\u{02DD}', 0xF1);
m.insert('\u{02DB}', 0xF2);
m.insert('\u{02C7}', 0xF3);
m.insert('\u{02D8}', 0xF4);
m.insert('\u{00A7}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{00B8}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{00A8}', 0xF9);
m.insert('\u{02D9}', 0xFA);
m.insert('\u{0171}', 0xFB);
m.insert('\u{0158}', 0xFC);
m.insert('\u{0159}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP855: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{0452}', 0x80);
m.insert('\u{0402}', 0x81);
m.insert('\u{0453}', 0x82);
m.insert('\u{0403}', 0x83);
m.insert('\u{0451}', 0x84);
m.insert('\u{0401}', 0x85);
m.insert('\u{0454}', 0x86);
m.insert('\u{0404}', 0x87);
m.insert('\u{0455}', 0x88);
m.insert('\u{0405}', 0x89);
m.insert('\u{0456}', 0x8A);
m.insert('\u{0406}', 0x8B);
m.insert('\u{0457}', 0x8C);
m.insert('\u{0407}', 0x8D);
m.insert('\u{0458}', 0x8E);
m.insert('\u{0408}', 0x8F);
m.insert('\u{0459}', 0x90);
m.insert('\u{0409}', 0x91);
m.insert('\u{045A}', 0x92);
m.insert('\u{040A}', 0x93);
m.insert('\u{045B}', 0x94);
m.insert('\u{040B}', 0x95);
m.insert('\u{045C}', 0x96);
m.insert('\u{040C}', 0x97);
m.insert('\u{045E}', 0x98);
m.insert('\u{040E}', 0x99);
m.insert('\u{045F}', 0x9A);
m.insert('\u{040F}', 0x9B);
m.insert('\u{044E}', 0x9C);
m.insert('\u{042E}', 0x9D);
m.insert('\u{044A}', 0x9E);
m.insert('\u{042A}', 0x9F);
m.insert('\u{0430}', 0xA0);
m.insert('\u{0410}', 0xA1);
m.insert('\u{0431}', 0xA2);
m.insert('\u{0411}', 0xA3);
m.insert('\u{0446}', 0xA4);
m.insert('\u{0426}', 0xA5);
m.insert('\u{0434}', 0xA6);
m.insert('\u{0414}', 0xA7);
m.insert('\u{0435}', 0xA8);
m.insert('\u{0415}', 0xA9);
m.insert('\u{0444}', 0xAA);
m.insert('\u{0424}', 0xAB);
m.insert('\u{0433}', 0xAC);
m.insert('\u{0413}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{0445}', 0xB5);
m.insert('\u{0425}', 0xB6);
m.insert('\u{0438}', 0xB7);
m.insert('\u{0418}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{0439}', 0xBD);
m.insert('\u{0419}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{043A}', 0xC6);
m.insert('\u{041A}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{00A4}', 0xCF);
m.insert('\u{043B}', 0xD0);
m.insert('\u{041B}', 0xD1);
m.insert('\u{043C}', 0xD2);
m.insert('\u{041C}', 0xD3);
m.insert('\u{043D}', 0xD4);
m.insert('\u{041D}', 0xD5);
m.insert('\u{043E}', 0xD6);
m.insert('\u{041E}', 0xD7);
m.insert('\u{043F}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{041F}', 0xDD);
m.insert('\u{044F}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{042F}', 0xE0);
m.insert('\u{0440}', 0xE1);
m.insert('\u{0420}', 0xE2);
m.insert('\u{0441}', 0xE3);
m.insert('\u{0421}', 0xE4);
m.insert('\u{0442}', 0xE5);
m.insert('\u{0422}', 0xE6);
m.insert('\u{0443}', 0xE7);
m.insert('\u{0423}', 0xE8);
m.insert('\u{0436}', 0xE9);
m.insert('\u{0416}', 0xEA);
m.insert('\u{0432}', 0xEB);
m.insert('\u{0412}', 0xEC);
m.insert('\u{044C}', 0xED);
m.insert('\u{042C}', 0xEE);
m.insert('\u{2116}', 0xEF);
m.insert('\u{00AD}', 0xF0);
m.insert('\u{044B}', 0xF1);
m.insert('\u{042B}', 0xF2);
m.insert('\u{0437}', 0xF3);
m.insert('\u{0417}', 0xF4);
m.insert('\u{0448}', 0xF5);
m.insert('\u{0428}', 0xF6);
m.insert('\u{044D}', 0xF7);
m.insert('\u{042D}', 0xF8);
m.insert('\u{0449}', 0xF9);
m.insert('\u{0429}', 0xFA);
m.insert('\u{0447}', 0xFB);
m.insert('\u{0427}', 0xFC);
m.insert('\u{00A7}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP857: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E4}', 0x84);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00E5}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00EF}', 0x8B);
m.insert('\u{00EE}', 0x8C);
m.insert('\u{0131}', 0x8D);
m.insert('\u{00C4}', 0x8E);
m.insert('\u{00C5}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00E6}', 0x91);
m.insert('\u{00C6}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00F6}', 0x94);
m.insert('\u{00F2}', 0x95);
m.insert('\u{00FB}', 0x96);
m.insert('\u{00F9}', 0x97);
m.insert('\u{0130}', 0x98);
m.insert('\u{00D6}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00F8}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00D8}', 0x9D);
m.insert('\u{015E}', 0x9E);
m.insert('\u{015F}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00F1}', 0xA4);
m.insert('\u{00D1}', 0xA5);
m.insert('\u{011E}', 0xA6);
m.insert('\u{011F}', 0xA7);
m.insert('\u{00BF}', 0xA8);
m.insert('\u{00AE}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00A1}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{00C1}', 0xB5);
m.insert('\u{00C2}', 0xB6);
m.insert('\u{00C0}', 0xB7);
m.insert('\u{00A9}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{00A2}', 0xBD);
m.insert('\u{00A5}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{00E3}', 0xC6);
m.insert('\u{00C3}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{00A4}', 0xCF);
m.insert('\u{00BA}', 0xD0);
m.insert('\u{00AA}', 0xD1);
m.insert('\u{00CA}', 0xD2);
m.insert('\u{00CB}', 0xD3);
m.insert('\u{00C8}', 0xD4);
m.insert('\u{00CD}', 0xD6);
m.insert('\u{00CE}', 0xD7);
m.insert('\u{00CF}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{00A6}', 0xDD);
m.insert('\u{00CC}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{00D3}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{00D4}', 0xE2);
m.insert('\u{00D2}', 0xE3);
m.insert('\u{00F5}', 0xE4);
m.insert('\u{00D5}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{00D7}', 0xE8);
m.insert('\u{00DA}', 0xE9);
m.insert('\u{00DB}', 0xEA);
m.insert('\u{00D9}', 0xEB);
m.insert('\u{00EC}', 0xEC);
m.insert('\u{00FF}', 0xED);
m.insert('\u{00AF}', 0xEE);
m.insert('\u{00B4}', 0xEF);
m.insert('\u{00AD}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{00BE}', 0xF3);
m.insert('\u{00B6}', 0xF4);
m.insert('\u{00A7}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{00B8}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{00A8}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{00B9}', 0xFB);
m.insert('\u{00B3}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP860: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E3}', 0x84);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00C1}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00CA}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00CD}', 0x8B);
m.insert('\u{00D4}', 0x8C);
m.insert('\u{00EC}', 0x8D);
m.insert('\u{00C3}', 0x8E);
m.insert('\u{00C2}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00C0}', 0x91);
m.insert('\u{00C8}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00F5}', 0x94);
m.insert('\u{00F2}', 0x95);
m.insert('\u{00DA}', 0x96);
m.insert('\u{00F9}', 0x97);
m.insert('\u{00CC}', 0x98);
m.insert('\u{00D5}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00A2}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00D9}', 0x9D);
m.insert('\u{20A7}', 0x9E);
m.insert('\u{00D3}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00F1}', 0xA4);
m.insert('\u{00D1}', 0xA5);
m.insert('\u{00AA}', 0xA6);
m.insert('\u{00BA}', 0xA7);
m.insert('\u{00BF}', 0xA8);
m.insert('\u{00D2}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00A1}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{03B1}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{0393}', 0xE2);
m.insert('\u{03C0}', 0xE3);
m.insert('\u{03A3}', 0xE4);
m.insert('\u{03C3}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{03C4}', 0xE7);
m.insert('\u{03A6}', 0xE8);
m.insert('\u{0398}', 0xE9);
m.insert('\u{03A9}', 0xEA);
m.insert('\u{03B4}', 0xEB);
m.insert('\u{221E}', 0xEC);
m.insert('\u{03C6}', 0xED);
m.insert('\u{03B5}', 0xEE);
m.insert('\u{2229}', 0xEF);
m.insert('\u{2261}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2265}', 0xF2);
m.insert('\u{2264}', 0xF3);
m.insert('\u{2320}', 0xF4);
m.insert('\u{2321}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{2248}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{207F}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP861: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E4}', 0x84);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00E5}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00D0}', 0x8B);
m.insert('\u{00F0}', 0x8C);
m.insert('\u{00DE}', 0x8D);
m.insert('\u{00C4}', 0x8E);
m.insert('\u{00C5}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00E6}', 0x91);
m.insert('\u{00C6}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00F6}', 0x94);
m.insert('\u{00FE}', 0x95);
m.insert('\u{00FB}', 0x96);
m.insert('\u{00DD}', 0x97);
m.insert('\u{00FD}', 0x98);
m.insert('\u{00D6}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00F8}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00D8}', 0x9D);
m.insert('\u{20A7}', 0x9E);
m.insert('\u{0192}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00C1}', 0xA4);
m.insert('\u{00CD}', 0xA5);
m.insert('\u{00D3}', 0xA6);
m.insert('\u{00DA}', 0xA7);
m.insert('\u{00BF}', 0xA8);
m.insert('\u{2310}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00A1}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{03B1}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{0393}', 0xE2);
m.insert('\u{03C0}', 0xE3);
m.insert('\u{03A3}', 0xE4);
m.insert('\u{03C3}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{03C4}', 0xE7);
m.insert('\u{03A6}', 0xE8);
m.insert('\u{0398}', 0xE9);
m.insert('\u{03A9}', 0xEA);
m.insert('\u{03B4}', 0xEB);
m.insert('\u{221E}', 0xEC);
m.insert('\u{03C6}', 0xED);
m.insert('\u{03B5}', 0xEE);
m.insert('\u{2229}', 0xEF);
m.insert('\u{2261}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2265}', 0xF2);
m.insert('\u{2264}', 0xF3);
m.insert('\u{2320}', 0xF4);
m.insert('\u{2321}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{2248}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{207F}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP862: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{05D0}', 0x80);
m.insert('\u{05D1}', 0x81);
m.insert('\u{05D2}', 0x82);
m.insert('\u{05D3}', 0x83);
m.insert('\u{05D4}', 0x84);
m.insert('\u{05D5}', 0x85);
m.insert('\u{05D6}', 0x86);
m.insert('\u{05D7}', 0x87);
m.insert('\u{05D8}', 0x88);
m.insert('\u{05D9}', 0x89);
m.insert('\u{05DA}', 0x8A);
m.insert('\u{05DB}', 0x8B);
m.insert('\u{05DC}', 0x8C);
m.insert('\u{05DD}', 0x8D);
m.insert('\u{05DE}', 0x8E);
m.insert('\u{05DF}', 0x8F);
m.insert('\u{05E0}', 0x90);
m.insert('\u{05E1}', 0x91);
m.insert('\u{05E2}', 0x92);
m.insert('\u{05E3}', 0x93);
m.insert('\u{05E4}', 0x94);
m.insert('\u{05E5}', 0x95);
m.insert('\u{05E6}', 0x96);
m.insert('\u{05E7}', 0x97);
m.insert('\u{05E8}', 0x98);
m.insert('\u{05E9}', 0x99);
m.insert('\u{05EA}', 0x9A);
m.insert('\u{00A2}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00A5}', 0x9D);
m.insert('\u{20A7}', 0x9E);
m.insert('\u{0192}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00F1}', 0xA4);
m.insert('\u{00D1}', 0xA5);
m.insert('\u{00AA}', 0xA6);
m.insert('\u{00BA}', 0xA7);
m.insert('\u{00BF}', 0xA8);
m.insert('\u{2310}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00A1}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{03B1}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{0393}', 0xE2);
m.insert('\u{03C0}', 0xE3);
m.insert('\u{03A3}', 0xE4);
m.insert('\u{03C3}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{03C4}', 0xE7);
m.insert('\u{03A6}', 0xE8);
m.insert('\u{0398}', 0xE9);
m.insert('\u{03A9}', 0xEA);
m.insert('\u{03B4}', 0xEB);
m.insert('\u{221E}', 0xEC);
m.insert('\u{03C6}', 0xED);
m.insert('\u{03B5}', 0xEE);
m.insert('\u{2229}', 0xEF);
m.insert('\u{2261}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2265}', 0xF2);
m.insert('\u{2264}', 0xF3);
m.insert('\u{2320}', 0xF4);
m.insert('\u{2321}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{2248}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{207F}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP863: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00C2}', 0x84);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00B6}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00EF}', 0x8B);
m.insert('\u{00EE}', 0x8C);
m.insert('\u{2017}', 0x8D);
m.insert('\u{00C0}', 0x8E);
m.insert('\u{00A7}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00C8}', 0x91);
m.insert('\u{00CA}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00CB}', 0x94);
m.insert('\u{00CF}', 0x95);
m.insert('\u{00FB}', 0x96);
m.insert('\u{00F9}', 0x97);
m.insert('\u{00A4}', 0x98);
m.insert('\u{00D4}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00A2}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00D9}', 0x9D);
m.insert('\u{00DB}', 0x9E);
m.insert('\u{0192}', 0x9F);
m.insert('\u{00A6}', 0xA0);
m.insert('\u{00B4}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00A8}', 0xA4);
m.insert('\u{00B8}', 0xA5);
m.insert('\u{00B3}', 0xA6);
m.insert('\u{00AF}', 0xA7);
m.insert('\u{00CE}', 0xA8);
m.insert('\u{2310}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00BE}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{03B1}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{0393}', 0xE2);
m.insert('\u{03C0}', 0xE3);
m.insert('\u{03A3}', 0xE4);
m.insert('\u{03C3}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{03C4}', 0xE7);
m.insert('\u{03A6}', 0xE8);
m.insert('\u{0398}', 0xE9);
m.insert('\u{03A9}', 0xEA);
m.insert('\u{03B4}', 0xEB);
m.insert('\u{221E}', 0xEC);
m.insert('\u{03C6}', 0xED);
m.insert('\u{03B5}', 0xEE);
m.insert('\u{2229}', 0xEF);
m.insert('\u{2261}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2265}', 0xF2);
m.insert('\u{2264}', 0xF3);
m.insert('\u{2320}', 0xF4);
m.insert('\u{2321}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{2248}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{207F}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP864: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{066A}', 0x25);
m.insert('\u{00B0}', 0x80);
m.insert('\u{00B7}', 0x81);
m.insert('\u{2219}', 0x82);
m.insert('\u{221A}', 0x83);
m.insert('\u{2592}', 0x84);
m.insert('\u{2500}', 0x85);
m.insert('\u{2502}', 0x86);
m.insert('\u{253C}', 0x87);
m.insert('\u{2524}', 0x88);
m.insert('\u{252C}', 0x89);
m.insert('\u{251C}', 0x8A);
m.insert('\u{2534}', 0x8B);
m.insert('\u{2510}', 0x8C);
m.insert('\u{250C}', 0x8D);
m.insert('\u{2514}', 0x8E);
m.insert('\u{2518}', 0x8F);
m.insert('\u{03B2}', 0x90);
m.insert('\u{221E}', 0x91);
m.insert('\u{03C6}', 0x92);
m.insert('\u{00B1}', 0x93);
m.insert('\u{00BD}', 0x94);
m.insert('\u{00BC}', 0x95);
m.insert('\u{2248}', 0x96);
m.insert('\u{00AB}', 0x97);
m.insert('\u{00BB}', 0x98);
m.insert('\u{FEF7}', 0x99);
m.insert('\u{FEF8}', 0x9A);
m.insert('\u{FEFB}', 0x9D);
m.insert('\u{FEFC}', 0x9E);
m.insert('\u{00A0}', 0xA0);
m.insert('\u{00AD}', 0xA1);
m.insert('\u{FE82}', 0xA2);
m.insert('\u{00A3}', 0xA3);
m.insert('\u{00A4}', 0xA4);
m.insert('\u{FE84}', 0xA5);
m.insert('\u{FE8E}', 0xA8);
m.insert('\u{FE8F}', 0xA9);
m.insert('\u{FE95}', 0xAA);
m.insert('\u{FE99}', 0xAB);
m.insert('\u{060C}', 0xAC);
m.insert('\u{FE9D}', 0xAD);
m.insert('\u{FEA1}', 0xAE);
m.insert('\u{FEA5}', 0xAF);
m.insert('\u{0660}', 0xB0);
m.insert('\u{0661}', 0xB1);
m.insert('\u{0662}', 0xB2);
m.insert('\u{0663}', 0xB3);
m.insert('\u{0664}', 0xB4);
m.insert('\u{0665}', 0xB5);
m.insert('\u{0666}', 0xB6);
m.insert('\u{0667}', 0xB7);
m.insert('\u{0668}', 0xB8);
m.insert('\u{0669}', 0xB9);
m.insert('\u{FED1}', 0xBA);
m.insert('\u{061B}', 0xBB);
m.insert('\u{FEB1}', 0xBC);
m.insert('\u{FEB5}', 0xBD);
m.insert('\u{FEB9}', 0xBE);
m.insert('\u{061F}', 0xBF);
m.insert('\u{00A2}', 0xC0);
m.insert('\u{FE80}', 0xC1);
m.insert('\u{FE81}', 0xC2);
m.insert('\u{FE83}', 0xC3);
m.insert('\u{FE85}', 0xC4);
m.insert('\u{FECA}', 0xC5);
m.insert('\u{FE8B}', 0xC6);
m.insert('\u{FE8D}', 0xC7);
m.insert('\u{FE91}', 0xC8);
m.insert('\u{FE93}', 0xC9);
m.insert('\u{FE97}', 0xCA);
m.insert('\u{FE9B}', 0xCB);
m.insert('\u{FE9F}', 0xCC);
m.insert('\u{FEA3}', 0xCD);
m.insert('\u{FEA7}', 0xCE);
m.insert('\u{FEA9}', 0xCF);
m.insert('\u{FEAB}', 0xD0);
m.insert('\u{FEAD}', 0xD1);
m.insert('\u{FEAF}', 0xD2);
m.insert('\u{FEB3}', 0xD3);
m.insert('\u{FEB7}', 0xD4);
m.insert('\u{FEBB}', 0xD5);
m.insert('\u{FEBF}', 0xD6);
m.insert('\u{FEC1}', 0xD7);
m.insert('\u{FEC5}', 0xD8);
m.insert('\u{FECB}', 0xD9);
m.insert('\u{FECF}', 0xDA);
m.insert('\u{00A6}', 0xDB);
m.insert('\u{00AC}', 0xDC);
m.insert('\u{00F7}', 0xDD);
m.insert('\u{00D7}', 0xDE);
m.insert('\u{FEC9}', 0xDF);
m.insert('\u{0640}', 0xE0);
m.insert('\u{FED3}', 0xE1);
m.insert('\u{FED7}', 0xE2);
m.insert('\u{FEDB}', 0xE3);
m.insert('\u{FEDF}', 0xE4);
m.insert('\u{FEE3}', 0xE5);
m.insert('\u{FEE7}', 0xE6);
m.insert('\u{FEEB}', 0xE7);
m.insert('\u{FEED}', 0xE8);
m.insert('\u{FEEF}', 0xE9);
m.insert('\u{FEF3}', 0xEA);
m.insert('\u{FEBD}', 0xEB);
m.insert('\u{FECC}', 0xEC);
m.insert('\u{FECE}', 0xED);
m.insert('\u{FECD}', 0xEE);
m.insert('\u{FEE1}', 0xEF);
m.insert('\u{FE7D}', 0xF0);
m.insert('\u{0651}', 0xF1);
m.insert('\u{FEE5}', 0xF2);
m.insert('\u{FEE9}', 0xF3);
m.insert('\u{FEEC}', 0xF4);
m.insert('\u{FEF0}', 0xF5);
m.insert('\u{FEF2}', 0xF6);
m.insert('\u{FED0}', 0xF7);
m.insert('\u{FED5}', 0xF8);
m.insert('\u{FEF5}', 0xF9);
m.insert('\u{FEF6}', 0xFA);
m.insert('\u{FEDD}', 0xFB);
m.insert('\u{FED9}', 0xFC);
m.insert('\u{FEF1}', 0xFD);
m.insert('\u{25A0}', 0xFE);
return m;
};
pub static ref ENCODING_TABLE_CP865: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E4}', 0x84);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00E5}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00EF}', 0x8B);
m.insert('\u{00EE}', 0x8C);
m.insert('\u{00EC}', 0x8D);
m.insert('\u{00C4}', 0x8E);
m.insert('\u{00C5}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00E6}', 0x91);
m.insert('\u{00C6}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00F6}', 0x94);
m.insert('\u{00F2}', 0x95);
m.insert('\u{00FB}', 0x96);
m.insert('\u{00F9}', 0x97);
m.insert('\u{00FF}', 0x98);
m.insert('\u{00D6}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00F8}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00D8}', 0x9D);
m.insert('\u{20A7}', 0x9E);
m.insert('\u{0192}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00F1}', 0xA4);
m.insert('\u{00D1}', 0xA5);
m.insert('\u{00AA}', 0xA6);
m.insert('\u{00BA}', 0xA7);
m.insert('\u{00BF}', 0xA8);
m.insert('\u{2310}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00A1}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00A4}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{03B1}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{0393}', 0xE2);
m.insert('\u{03C0}', 0xE3);
m.insert('\u{03A3}', 0xE4);
m.insert('\u{03C3}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{03C4}', 0xE7);
m.insert('\u{03A6}', 0xE8);
m.insert('\u{0398}', 0xE9);
m.insert('\u{03A9}', 0xEA);
m.insert('\u{03B4}', 0xEB);
m.insert('\u{221E}', 0xEC);
m.insert('\u{03C6}', 0xED);
m.insert('\u{03B5}', 0xEE);
m.insert('\u{2229}', 0xEF);
m.insert('\u{2261}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2265}', 0xF2);
m.insert('\u{2264}', 0xF3);
m.insert('\u{2320}', 0xF4);
m.insert('\u{2321}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{2248}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{207F}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP866: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{0410}', 0x80);
m.insert('\u{0411}', 0x81);
m.insert('\u{0412}', 0x82);
m.insert('\u{0413}', 0x83);
m.insert('\u{0414}', 0x84);
m.insert('\u{0415}', 0x85);
m.insert('\u{0416}', 0x86);
m.insert('\u{0417}', 0x87);
m.insert('\u{0418}', 0x88);
m.insert('\u{0419}', 0x89);
m.insert('\u{041A}', 0x8A);
m.insert('\u{041B}', 0x8B);
m.insert('\u{041C}', 0x8C);
m.insert('\u{041D}', 0x8D);
m.insert('\u{041E}', 0x8E);
m.insert('\u{041F}', 0x8F);
m.insert('\u{0420}', 0x90);
m.insert('\u{0421}', 0x91);
m.insert('\u{0422}', 0x92);
m.insert('\u{0423}', 0x93);
m.insert('\u{0424}', 0x94);
m.insert('\u{0425}', 0x95);
m.insert('\u{0426}', 0x96);
m.insert('\u{0427}', 0x97);
m.insert('\u{0428}', 0x98);
m.insert('\u{0429}', 0x99);
m.insert('\u{042A}', 0x9A);
m.insert('\u{042B}', 0x9B);
m.insert('\u{042C}', 0x9C);
m.insert('\u{042D}', 0x9D);
m.insert('\u{042E}', 0x9E);
m.insert('\u{042F}', 0x9F);
m.insert('\u{0430}', 0xA0);
m.insert('\u{0431}', 0xA1);
m.insert('\u{0432}', 0xA2);
m.insert('\u{0433}', 0xA3);
m.insert('\u{0434}', 0xA4);
m.insert('\u{0435}', 0xA5);
m.insert('\u{0436}', 0xA6);
m.insert('\u{0437}', 0xA7);
m.insert('\u{0438}', 0xA8);
m.insert('\u{0439}', 0xA9);
m.insert('\u{043A}', 0xAA);
m.insert('\u{043B}', 0xAB);
m.insert('\u{043C}', 0xAC);
m.insert('\u{043D}', 0xAD);
m.insert('\u{043E}', 0xAE);
m.insert('\u{043F}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{0440}', 0xE0);
m.insert('\u{0441}', 0xE1);
m.insert('\u{0442}', 0xE2);
m.insert('\u{0443}', 0xE3);
m.insert('\u{0444}', 0xE4);
m.insert('\u{0445}', 0xE5);
m.insert('\u{0446}', 0xE6);
m.insert('\u{0447}', 0xE7);
m.insert('\u{0448}', 0xE8);
m.insert('\u{0449}', 0xE9);
m.insert('\u{044A}', 0xEA);
m.insert('\u{044B}', 0xEB);
m.insert('\u{044C}', 0xEC);
m.insert('\u{044D}', 0xED);
m.insert('\u{044E}', 0xEE);
m.insert('\u{044F}', 0xEF);
m.insert('\u{0401}', 0xF0);
m.insert('\u{0451}', 0xF1);
m.insert('\u{0404}', 0xF2);
m.insert('\u{0454}', 0xF3);
m.insert('\u{0407}', 0xF4);
m.insert('\u{0457}', 0xF5);
m.insert('\u{040E}', 0xF6);
m.insert('\u{045E}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{2116}', 0xFC);
m.insert('\u{00A4}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP869: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{0386}', 0x86);
m.insert('\u{00B7}', 0x88);
m.insert('\u{00AC}', 0x89);
m.insert('\u{00A6}', 0x8A);
m.insert('\u{2018}', 0x8B);
m.insert('\u{2019}', 0x8C);
m.insert('\u{0388}', 0x8D);
m.insert('\u{2015}', 0x8E);
m.insert('\u{0389}', 0x8F);
m.insert('\u{038A}', 0x90);
m.insert('\u{03AA}', 0x91);
m.insert('\u{038C}', 0x92);
m.insert('\u{038E}', 0x95);
m.insert('\u{03AB}', 0x96);
m.insert('\u{00A9}', 0x97);
m.insert('\u{038F}', 0x98);
m.insert('\u{00B2}', 0x99);
m.insert('\u{00B3}', 0x9A);
m.insert('\u{03AC}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{03AD}', 0x9D);
m.insert('\u{03AE}', 0x9E);
m.insert('\u{03AF}', 0x9F);
m.insert('\u{03CA}', 0xA0);
m.insert('\u{0390}', 0xA1);
m.insert('\u{03CC}', 0xA2);
m.insert('\u{03CD}', 0xA3);
m.insert('\u{0391}', 0xA4);
m.insert('\u{0392}', 0xA5);
m.insert('\u{0393}', 0xA6);
m.insert('\u{0394}', 0xA7);
m.insert('\u{0395}', 0xA8);
m.insert('\u{0396}', 0xA9);
m.insert('\u{0397}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{0398}', 0xAC);
m.insert('\u{0399}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{039A}', 0xB5);
m.insert('\u{039B}', 0xB6);
m.insert('\u{039C}', 0xB7);
m.insert('\u{039D}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{039E}', 0xBD);
m.insert('\u{039F}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{03A0}', 0xC6);
m.insert('\u{03A1}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{03A3}', 0xCF);
m.insert('\u{03A4}', 0xD0);
m.insert('\u{03A5}', 0xD1);
m.insert('\u{03A6}', 0xD2);
m.insert('\u{03A7}', 0xD3);
m.insert('\u{03A8}', 0xD4);
m.insert('\u{03A9}', 0xD5);
m.insert('\u{03B1}', 0xD6);
m.insert('\u{03B2}', 0xD7);
m.insert('\u{03B3}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{03B4}', 0xDD);
m.insert('\u{03B5}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{03B6}', 0xE0);
m.insert('\u{03B7}', 0xE1);
m.insert('\u{03B8}', 0xE2);
m.insert('\u{03B9}', 0xE3);
m.insert('\u{03BA}', 0xE4);
m.insert('\u{03BB}', 0xE5);
m.insert('\u{03BC}', 0xE6);
m.insert('\u{03BD}', 0xE7);
m.insert('\u{03BE}', 0xE8);
m.insert('\u{03BF}', 0xE9);
m.insert('\u{03C0}', 0xEA);
m.insert('\u{03C1}', 0xEB);
m.insert('\u{03C3}', 0xEC);
m.insert('\u{03C2}', 0xED);
m.insert('\u{03C4}', 0xEE);
m.insert('\u{0384}', 0xEF);
m.insert('\u{00AD}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{03C5}', 0xF2);
m.insert('\u{03C6}', 0xF3);
m.insert('\u{03C7}', 0xF4);
m.insert('\u{00A7}', 0xF5);
m.insert('\u{03C8}', 0xF6);
m.insert('\u{0385}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{00A8}', 0xF9);
m.insert('\u{03C9}', 0xFA);
m.insert('\u{03CB}', 0xFB);
m.insert('\u{03B0}', 0xFC);
m.insert('\u{03CE}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP720: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{001C}', 0x1A);
m.insert('\u{007F}', 0x1C);
m.insert('\u{001A}', 0x7F);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00EF}', 0x8B);
m.insert('\u{00EE}', 0x8C);
m.insert('\u{0651}', 0x91);
m.insert('\u{0652}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00A4}', 0x94);
m.insert('\u{0640}', 0x95);
m.insert('\u{00FB}', 0x96);
m.insert('\u{00F9}', 0x97);
m.insert('\u{0621}', 0x98);
m.insert('\u{0622}', 0x99);
m.insert('\u{0623}', 0x9A);
m.insert('\u{0624}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{0625}', 0x9D);
m.insert('\u{0626}', 0x9E);
m.insert('\u{0627}', 0x9F);
m.insert('\u{0628}', 0xA0);
m.insert('\u{0629}', 0xA1);
m.insert('\u{062A}', 0xA2);
m.insert('\u{062B}', 0xA3);
m.insert('\u{062C}', 0xA4);
m.insert('\u{062D}', 0xA5);
m.insert('\u{062E}', 0xA6);
m.insert('\u{062F}', 0xA7);
m.insert('\u{0630}', 0xA8);
m.insert('\u{0631}', 0xA9);
m.insert('\u{0632}', 0xAA);
m.insert('\u{0633}', 0xAB);
m.insert('\u{0634}', 0xAC);
m.insert('\u{0635}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{2561}', 0xB5);
m.insert('\u{2562}', 0xB6);
m.insert('\u{2556}', 0xB7);
m.insert('\u{2555}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{255C}', 0xBD);
m.insert('\u{255B}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{255E}', 0xC6);
m.insert('\u{255F}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{2567}', 0xCF);
m.insert('\u{2568}', 0xD0);
m.insert('\u{2564}', 0xD1);
m.insert('\u{2565}', 0xD2);
m.insert('\u{2559}', 0xD3);
m.insert('\u{2558}', 0xD4);
m.insert('\u{2552}', 0xD5);
m.insert('\u{2553}', 0xD6);
m.insert('\u{256B}', 0xD7);
m.insert('\u{256A}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{258C}', 0xDD);
m.insert('\u{2590}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{0636}', 0xE0);
m.insert('\u{0637}', 0xE1);
m.insert('\u{0638}', 0xE2);
m.insert('\u{0639}', 0xE3);
m.insert('\u{063A}', 0xE4);
m.insert('\u{0641}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{0642}', 0xE7);
m.insert('\u{0643}', 0xE8);
m.insert('\u{0644}', 0xE9);
m.insert('\u{0645}', 0xEA);
m.insert('\u{0646}', 0xEB);
m.insert('\u{0647}', 0xEC);
m.insert('\u{0648}', 0xED);
m.insert('\u{0649}', 0xEE);
m.insert('\u{064A}', 0xEF);
m.insert('\u{2261}', 0xF0);
m.insert('\u{064B}', 0xF1);
m.insert('\u{064C}', 0xF2);
m.insert('\u{064D}', 0xF3);
m.insert('\u{064E}', 0xF4);
m.insert('\u{064F}', 0xF5);
m.insert('\u{0650}', 0xF6);
m.insert('\u{2248}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{2219}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{221A}', 0xFB);
m.insert('\u{207F}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP858: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{001C}', 0x1A);
m.insert('\u{007F}', 0x1C);
m.insert('\u{001A}', 0x7F);
m.insert('\u{00C7}', 0x80);
m.insert('\u{00FC}', 0x81);
m.insert('\u{00E9}', 0x82);
m.insert('\u{00E2}', 0x83);
m.insert('\u{00E4}', 0x84);
m.insert('\u{00E0}', 0x85);
m.insert('\u{00E5}', 0x86);
m.insert('\u{00E7}', 0x87);
m.insert('\u{00EA}', 0x88);
m.insert('\u{00EB}', 0x89);
m.insert('\u{00E8}', 0x8A);
m.insert('\u{00EF}', 0x8B);
m.insert('\u{00EE}', 0x8C);
m.insert('\u{00EC}', 0x8D);
m.insert('\u{00C4}', 0x8E);
m.insert('\u{00C5}', 0x8F);
m.insert('\u{00C9}', 0x90);
m.insert('\u{00E6}', 0x91);
m.insert('\u{00C6}', 0x92);
m.insert('\u{00F4}', 0x93);
m.insert('\u{00F6}', 0x94);
m.insert('\u{00F2}', 0x95);
m.insert('\u{00FB}', 0x96);
m.insert('\u{00F9}', 0x97);
m.insert('\u{00FF}', 0x98);
m.insert('\u{00D6}', 0x99);
m.insert('\u{00DC}', 0x9A);
m.insert('\u{00F8}', 0x9B);
m.insert('\u{00A3}', 0x9C);
m.insert('\u{00D8}', 0x9D);
m.insert('\u{00D7}', 0x9E);
m.insert('\u{0192}', 0x9F);
m.insert('\u{00E1}', 0xA0);
m.insert('\u{00ED}', 0xA1);
m.insert('\u{00F3}', 0xA2);
m.insert('\u{00FA}', 0xA3);
m.insert('\u{00F1}', 0xA4);
m.insert('\u{00D1}', 0xA5);
m.insert('\u{00AA}', 0xA6);
m.insert('\u{00BA}', 0xA7);
m.insert('\u{00BF}', 0xA8);
m.insert('\u{00AE}', 0xA9);
m.insert('\u{00AC}', 0xAA);
m.insert('\u{00BD}', 0xAB);
m.insert('\u{00BC}', 0xAC);
m.insert('\u{00A1}', 0xAD);
m.insert('\u{00AB}', 0xAE);
m.insert('\u{00BB}', 0xAF);
m.insert('\u{2591}', 0xB0);
m.insert('\u{2592}', 0xB1);
m.insert('\u{2593}', 0xB2);
m.insert('\u{2502}', 0xB3);
m.insert('\u{2524}', 0xB4);
m.insert('\u{00C1}', 0xB5);
m.insert('\u{00C2}', 0xB6);
m.insert('\u{00C0}', 0xB7);
m.insert('\u{00A9}', 0xB8);
m.insert('\u{2563}', 0xB9);
m.insert('\u{2551}', 0xBA);
m.insert('\u{2557}', 0xBB);
m.insert('\u{255D}', 0xBC);
m.insert('\u{00A2}', 0xBD);
m.insert('\u{00A5}', 0xBE);
m.insert('\u{2510}', 0xBF);
m.insert('\u{2514}', 0xC0);
m.insert('\u{2534}', 0xC1);
m.insert('\u{252C}', 0xC2);
m.insert('\u{251C}', 0xC3);
m.insert('\u{2500}', 0xC4);
m.insert('\u{253C}', 0xC5);
m.insert('\u{00E3}', 0xC6);
m.insert('\u{00C3}', 0xC7);
m.insert('\u{255A}', 0xC8);
m.insert('\u{2554}', 0xC9);
m.insert('\u{2569}', 0xCA);
m.insert('\u{2566}', 0xCB);
m.insert('\u{2560}', 0xCC);
m.insert('\u{2550}', 0xCD);
m.insert('\u{256C}', 0xCE);
m.insert('\u{00A4}', 0xCF);
m.insert('\u{00F0}', 0xD0);
m.insert('\u{00D0}', 0xD1);
m.insert('\u{00CA}', 0xD2);
m.insert('\u{00CB}', 0xD3);
m.insert('\u{00C8}', 0xD4);
m.insert('\u{20AC}', 0xD5);
m.insert('\u{00CD}', 0xD6);
m.insert('\u{00CE}', 0xD7);
m.insert('\u{00CF}', 0xD8);
m.insert('\u{2518}', 0xD9);
m.insert('\u{250C}', 0xDA);
m.insert('\u{2588}', 0xDB);
m.insert('\u{2584}', 0xDC);
m.insert('\u{00A6}', 0xDD);
m.insert('\u{00CC}', 0xDE);
m.insert('\u{2580}', 0xDF);
m.insert('\u{00D3}', 0xE0);
m.insert('\u{00DF}', 0xE1);
m.insert('\u{00D4}', 0xE2);
m.insert('\u{00D2}', 0xE3);
m.insert('\u{00F5}', 0xE4);
m.insert('\u{00D5}', 0xE5);
m.insert('\u{00B5}', 0xE6);
m.insert('\u{00FE}', 0xE7);
m.insert('\u{00DE}', 0xE8);
m.insert('\u{00DA}', 0xE9);
m.insert('\u{00DB}', 0xEA);
m.insert('\u{00D9}', 0xEB);
m.insert('\u{00FD}', 0xEC);
m.insert('\u{00DD}', 0xED);
m.insert('\u{00AF}', 0xEE);
m.insert('\u{00B4}', 0xEF);
m.insert('\u{00AD}', 0xF0);
m.insert('\u{00B1}', 0xF1);
m.insert('\u{2017}', 0xF2);
m.insert('\u{00BE}', 0xF3);
m.insert('\u{00B6}', 0xF4);
m.insert('\u{00A7}', 0xF5);
m.insert('\u{00F7}', 0xF6);
m.insert('\u{00B8}', 0xF7);
m.insert('\u{00B0}', 0xF8);
m.insert('\u{00A8}', 0xF9);
m.insert('\u{00B7}', 0xFA);
m.insert('\u{00B9}', 0xFB);
m.insert('\u{00B3}', 0xFC);
m.insert('\u{00B2}', 0xFD);
m.insert('\u{25A0}', 0xFE);
m.insert('\u{00A0}', 0xFF);
return m;
};
pub static ref ENCODING_TABLE_CP874: AHashMap<char, u8> = {
let mut m = AHashMap::new();
m.insert('\u{20AC}', 0x80);
m.insert('\u{0081}', 0x81);
m.insert('\u{0082}', 0x82);
m.insert('\u{0083}', 0x83);
m.insert('\u{0084}', 0x84);
m.insert('\u{2026}', 0x85);
m.insert('\u{0086}', 0x86);
m.insert('\u{0087}', 0x87);
m.insert('\u{0088}', 0x88);
m.insert('\u{0089}', 0x89);
m.insert('\u{008A}', 0x8A);
m.insert('\u{008B}', 0x8B);
m.insert('\u{008C}', 0x8C);
m.insert('\u{008D}', 0x8D);
m.insert('\u{008E}', 0x8E);
m.insert('\u{008F}', 0x8F);
m.insert('\u{0090}', 0x90);
m.insert('\u{2018}', 0x91);
m.insert('\u{2019}', 0x92);
m.insert('\u{201C}', 0x93);
m.insert('\u{201D}', 0x94);
m.insert('\u{2022}', 0x95);
m.insert('\u{2013}', 0x96);
m.insert('\u{2014}', 0x97);
m.insert('\u{0098}', 0x98);
m.insert('\u{0099}', 0x99);
m.insert('\u{009A}', 0x9A);
m.insert('\u{009B}', 0x9B);
m.insert('\u{009C}', 0x9C);
m.insert('\u{009D}', 0x9D);
m.insert('\u{009E}', 0x9E);
m.insert('\u{009F}', 0x9F);
m.insert('\u{00A0}', 0xA0);
m.insert('\u{0E01}', 0xA1);
m.insert('\u{0E02}', 0xA2);
m.insert('\u{0E03}', 0xA3);
m.insert('\u{0E04}', 0xA4);
m.insert('\u{0E05}', 0xA5);
m.insert('\u{0E06}', 0xA6);
m.insert('\u{0E07}', 0xA7);
m.insert('\u{0E08}', 0xA8);
m.insert('\u{0E09}', 0xA9);
m.insert('\u{0E0A}', 0xAA);
m.insert('\u{0E0B}', 0xAB);
m.insert('\u{0E0C}', 0xAC);
m.insert('\u{0E0D}', 0xAD);
m.insert('\u{0E0E}', 0xAE);
m.insert('\u{0E0F}', 0xAF);
m.insert('\u{0E10}', 0xB0);
m.insert('\u{0E11}', 0xB1);
m.insert('\u{0E12}', 0xB2);
m.insert('\u{0E13}', 0xB3);
m.insert('\u{0E14}', 0xB4);
m.insert('\u{0E15}', 0xB5);
m.insert('\u{0E16}', 0xB6);
m.insert('\u{0E17}', 0xB7);
m.insert('\u{0E18}', 0xB8);
m.insert('\u{0E19}', 0xB9);
m.insert('\u{0E1A}', 0xBA);
m.insert('\u{0E1B}', 0xBB);
m.insert('\u{0E1C}', 0xBC);
m.insert('\u{0E1D}', 0xBD);
m.insert('\u{0E1E}', 0xBE);
m.insert('\u{0E1F}', 0xBF);
m.insert('\u{0E20}', 0xC0);
m.insert('\u{0E21}', 0xC1);
m.insert('\u{0E22}', 0xC2);
m.insert('\u{0E23}', 0xC3);
m.insert('\u{0E24}', 0xC4);
m.insert('\u{0E25}', 0xC5);
m.insert('\u{0E26}', 0xC6);
m.insert('\u{0E27}', 0xC7);
m.insert('\u{0E28}', 0xC8);
m.insert('\u{0E29}', 0xC9);
m.insert('\u{0E2A}', 0xCA);
m.insert('\u{0E2B}', 0xCB);
m.insert('\u{0E2C}', 0xCC);
m.insert('\u{0E2D}', 0xCD);
m.insert('\u{0E2E}', 0xCE);
m.insert('\u{0E2F}', 0xCF);
m.insert('\u{0E30}', 0xD0);
m.insert('\u{0E31}', 0xD1);
m.insert('\u{0E32}', 0xD2);
m.insert('\u{0E33}', 0xD3);
m.insert('\u{0E34}', 0xD4);
m.insert('\u{0E35}', 0xD5);
m.insert('\u{0E36}', 0xD6);
m.insert('\u{0E37}', 0xD7);
m.insert('\u{0E38}', 0xD8);
m.insert('\u{0E39}', 0xD9);
m.insert('\u{0E3A}', 0xDA);
m.insert('\u{0E3F}', 0xDF);
m.insert('\u{0E40}', 0xE0);
m.insert('\u{0E41}', 0xE1);
m.insert('\u{0E42}', 0xE2);
m.insert('\u{0E43}', 0xE3);
m.insert('\u{0E44}', 0xE4);
m.insert('\u{0E45}', 0xE5);
m.insert('\u{0E46}', 0xE6);
m.insert('\u{0E47}', 0xE7);
m.insert('\u{0E48}', 0xE8);
m.insert('\u{0E49}', 0xE9);
m.insert('\u{0E4A}', 0xEA);
m.insert('\u{0E4B}', 0xEB);
m.insert('\u{0E4C}', 0xEC);
m.insert('\u{0E4D}', 0xED);
m.insert('\u{0E4E}', 0xEE);
m.insert('\u{0E4F}', 0xEF);
m.insert('\u{0E50}', 0xF0);
m.insert('\u{0E51}', 0xF1);
m.insert('\u{0E52}', 0xF2);
m.insert('\u{0E53}', 0xF3);
m.insert('\u{0E54}', 0xF4);
m.insert('\u{0E55}', 0xF5);
m.insert('\u{0E56}', 0xF6);
m.insert('\u{0E57}', 0xF7);
m.insert('\u{0E58}', 0xF8);
m.insert('\u{0E59}', 0xF9);
m.insert('\u{0E5A}', 0xFA);
m.insert('\u{0E5B}', 0xFB);
return m;
};
}
lazy_static! {
pub static ref DECODING_TABLE_CP_MAP: AHashMap<u16, TableType> = {
let mut map = AHashMap::new();
map.insert(437, Complete(&DECODING_TABLE_CP437));
map.insert(737, Complete(&DECODING_TABLE_CP737));
map.insert(775, Complete(&DECODING_TABLE_CP775));
map.insert(850, Complete(&DECODING_TABLE_CP850));
map.insert(852, Complete(&DECODING_TABLE_CP852));
map.insert(855, Complete(&DECODING_TABLE_CP855));
map.insert(857, Incomplete(&DECODING_TABLE_CP857));
map.insert(860, Complete(&DECODING_TABLE_CP860));
map.insert(861, Complete(&DECODING_TABLE_CP861));
map.insert(862, Complete(&DECODING_TABLE_CP862));
map.insert(863, Complete(&DECODING_TABLE_CP863));
map.insert(864, Incomplete(&DECODING_TABLE_CP864));
map.insert(865, Complete(&DECODING_TABLE_CP865));
map.insert(866, Complete(&DECODING_TABLE_CP866));
map.insert(869, Incomplete(&DECODING_TABLE_CP869));
map.insert(720, Incomplete(&DECODING_TABLE_CP720));
map.insert(858, Complete(&DECODING_TABLE_CP858));
map.insert(874, Incomplete(&DECODING_TABLE_CP874));
return map;
};
}
lazy_static! {
pub static ref ENCODING_TABLE_CP_MAP: AHashMap<u16, &'static AHashMap<char, u8>> = {
let mut m = AHashMap::new();
m.insert(437, &*ENCODING_TABLE_CP437);
m.insert(737, &*ENCODING_TABLE_CP737);
m.insert(775, &*ENCODING_TABLE_CP775);
m.insert(850, &*ENCODING_TABLE_CP850);
m.insert(852, &*ENCODING_TABLE_CP852);
m.insert(855, &*ENCODING_TABLE_CP855);
m.insert(857, &*ENCODING_TABLE_CP857);
m.insert(860, &*ENCODING_TABLE_CP860);
m.insert(861, &*ENCODING_TABLE_CP861);
m.insert(862, &*ENCODING_TABLE_CP862);
m.insert(863, &*ENCODING_TABLE_CP863);
m.insert(864, &*ENCODING_TABLE_CP864);
m.insert(865, &*ENCODING_TABLE_CP865);
m.insert(866, &*ENCODING_TABLE_CP866);
m.insert(869, &*ENCODING_TABLE_CP869);
m.insert(720, &*ENCODING_TABLE_CP720);
m.insert(858, &*ENCODING_TABLE_CP858);
m.insert(874, &*ENCODING_TABLE_CP874);
return m;
};
}