use phf::phf_map;
pub static MAPPINGS_JP: phf::Map<&str, &str> = phf_map![
"!" =>"!",
"\"" =>""",
"#" =>"#",
"$" =>"$",
"%" =>"%",
"&" =>"&",
"'" =>"'",
"" =>"(",
")" =>")",
"*" =>"*",
"+" =>"+",
"," =>",",
"-" =>"-",
"." =>".",
"/" =>"/",
":" =>":",
";" =>";",
"<" =>"<",
"=" =>"=",
">" =>">",
"?" =>"?",
"@" =>"@",
"A" =>"A",
"B" =>"B",
"C" =>"C",
"D" =>"D",
"E" =>"E",
"F" =>"F",
"G" =>"G",
"H" =>"H",
"I" =>"I",
"J" =>"J",
"K" =>"K",
"L" =>"L",
"M" =>"M",
"N" =>"N",
"O" =>"O",
"P" =>"P",
"Q" =>"Q",
"R" =>"R",
"S" =>"S",
"T" =>"T",
"U" =>"U",
"V" =>"V",
"W" =>"W",
"X" =>"X",
"Y" =>"Y",
"Z" =>"Z",
"[" =>"[",
"\\" =>"\",
"]" =>"]",
"^" =>"^",
"_" =>"_",
"`" =>"`",
"a" =>"a",
"b" =>"b",
"c" =>"c",
"d" =>"d",
"e" =>"e",
"f" =>"f",
"g" =>"g",
"h" =>"h",
"i" =>"i",
"j" =>"j",
"k" =>"k",
"l" =>"l",
"m" =>"m",
"n" =>"n",
"o" =>"o",
"p" =>"p",
"q" =>"q",
"r" =>"r",
"s" =>"s",
"t" =>"t",
"u" =>"u",
"v" =>"v",
"w" =>"w",
"x" =>"x",
"y" =>"y",
"z" =>"z",
"{" =>"{",
"|" =>"|",
"}" =>"}",
"~" =>"~",
" " =>"\u{3000}",
"0" =>"0",
"1" =>"1",
"2" =>"2",
"3" =>"3",
"4" =>"4",
"5" =>"5",
"6" =>"6",
"7" =>"7",
"8" =>"8",
"9" =>"9",
"ァ" =>"ァ",
"ア" =>"ア",
"ィ" =>"ィ",
"イ" =>"イ",
"ゥ" =>"ゥ",
"ウ" =>"ウ",
"ェ" =>"ェ",
"エ" =>"エ",
"ォ" =>"ォ",
"オ" =>"オ",
"カ" =>"カ",
"ガ" =>"ガ",
"キ" =>"キ",
"ギ" =>"ギ",
"ク" =>"ク",
"グ" =>"グ",
"ケ" =>"ケ",
"ゲ" =>"ゲ",
"コ" =>"コ",
"ゴ" =>"ゴ",
"サ" =>"サ",
"ザ" =>"ザ",
"シ" =>"シ",
"ジ" =>"ジ",
"ス" =>"ス",
"ズ" =>"ズ",
"セ" =>"セ",
"ゼ" =>"ゼ",
"ソ" =>"ソ",
"ゾ" =>"ゾ",
"タ" =>"タ",
"ダ" =>"ダ",
"チ" =>"チ",
"ヂ" =>"ヂ",
"ッ" =>"ッ",
"ツ" =>"ツ",
"ヅ" =>"ヅ",
"テ" =>"テ",
"デ" =>"デ",
"ト" =>"ト",
"ド" =>"ド",
"ナ" =>"ナ",
"ニ" =>"ニ",
"ヌ" =>"ヌ",
"ネ" =>"ネ",
"ノ" =>"ノ",
"ハ" =>"ハ",
"バ" =>"バ",
"パ" =>"パ",
"ヒ" =>"ヒ",
"ビ" =>"ビ",
"ピ" =>"ピ",
"フ" =>"フ",
"ブ" =>"ブ",
"プ" =>"プ",
"ヘ" =>"ヘ",
"ベ" =>"ベ",
"ペ" =>"ペ",
"ホ" =>"ホ",
"ボ" =>"ボ",
"ポ" =>"ポ",
"マ" =>"マ",
"ミ" =>"ミ",
"ム" =>"ム",
"メ" =>"メ",
"モ" =>"モ",
"ャ" =>"ャ",
"ヤ" =>"ヤ",
"ュ" =>"ュ",
"ユ" =>"ユ",
"ョ" =>"ョ",
"ヨ" =>"ヨ",
"ラ" =>"ラ",
"リ" =>"リ",
"ル" =>"ル",
"レ" =>"レ",
"ロ" =>"ロ",
"ワ" =>"ワ",
"ヲ" =>"ヲ",
"ン" =>"ン",
"ー" =>"ー",
"ヮ" =>"ヮ",
"ヰ" =>"ヰ",
"ヱ" =>"ヱ",
"ヵ" =>"ヵ",
"ヶ" =>"ヶ",
"ヴ" =>"ヴ",
"ヽ" =>"ヽ",
"ヾ" =>"ヾ",
"・" =>"・",
"「" =>"「",
"」" =>"」",
"。" =>"。",
"、" =>"、"
];
pub static MAPPINGS_RU: phf::Map<&str, &str> = phf_map![
"а" =>"a",
"б" =>"b",
"в" =>"v",
"г" =>"g",
"д" =>"d",
"е" =>"e",
"ё" =>"e",
"ж" =>"zh",
"з" =>"z",
"и" =>"i",
"й" =>"i",
"к" =>"k",
"л" =>"l",
"м" =>"m",
"н" =>"n",
"о" =>"o",
"п" =>"p",
"р" =>"r",
"с" =>"s",
"т" =>"t",
"у" =>"u",
"ф" =>"f",
"х" =>"kh",
"ц" =>"tc",
"ч" =>"ch",
"ш" =>"sh",
"щ" =>"shch",
"ъ" =>"",
"ы" =>"y",
"ь" =>"'",
"э" =>"e",
"ю" =>"iu",
"я" =>"ia",
"А" =>"A",
"Б" =>"B",
"В" =>"V",
"Г" =>"G",
"Д" =>"D",
"Е" =>"E",
"Ё" =>"E",
"Ж" =>"Zh",
"З" =>"Z",
"И" =>"I",
"Й" =>"I",
"К" =>"K",
"Л" =>"L",
"М" =>"M",
"Н" =>"N",
"О" =>"O",
"П" =>"P",
"Р" =>"R",
"С" =>"S",
"Т" =>"T",
"У" =>"U",
"Ф" =>"F",
"Х" =>"Kh",
"Ц" =>"Tc",
"Ч" =>"Ch",
"Ш" =>"Sh",
"Щ" =>"Shch",
"Ъ" =>"",
"Ы" =>"Y",
"Ь" =>"'",
"Э" =>"E",
"Ю" =>"Iu",
"Я" =>"Ia"
];
pub static MAPPINGS_DE: phf::Map<&str, &str> = phf_map![
"Ä" => "Ae",
"ä" => "ae",
"Ö" => "Oe",
"ö" => "oe",
"Ü" => "Ue",
"ü" => "ue",
"ß" => "ss"
];
pub static MAPPINGS_HW: phf::Map<&str, &str> = phf_map![
"-" =>"-",
"ー" =>"-",
"ァ" =>"ァ",
"ア" =>"ア",
"ィ" =>"ィ",
"イ" =>"イ",
"ゥ" =>"ゥ",
"ウ" =>"ウ",
"ェ" =>"ェ",
"エ" =>"エ",
"ォ" =>"ォ",
"オ" =>"オ",
"カ" =>"カ",
"ガ" =>"ガ",
"キ" =>"キ",
"ギ" =>"ギ",
"ク" =>"ク",
"グ" =>"グ",
"ケ" =>"ケ",
"ゲ" =>"ゲ",
"コ" =>"コ",
"ゴ" =>"ゴ",
"サ" =>"サ",
"ザ" =>"ザ",
"シ" =>"シ",
"ジ" =>"ジ",
"ス" =>"ス",
"ズ" =>"ズ",
"セ" =>"セ",
"ゼ" =>"ゼ",
"ソ" =>"ソ",
"ゾ" =>"ゾ",
"タ" =>"タ",
"ダ" =>"ダ",
"チ" =>"チ",
"ヂ" =>"ヂ",
"ッ" =>"ッ",
"ツ" =>"ツ",
"ヅ" =>"ヅ",
"テ" =>"テ",
"デ" =>"デ",
"ト" =>"ト",
"ド" =>"ド",
"ナ" =>"ナ",
"ニ" =>"ニ",
"ヌ" =>"ヌ",
"ネ" =>"ネ",
"ノ" =>"ノ",
"ハ" =>"ハ",
"バ" =>"バ",
"パ" =>"パ",
"ヒ" =>"ヒ",
"ビ" =>"ビ",
"ピ" =>"ピ",
"フ" =>"フ",
"ブ" =>"ブ",
"プ" =>"プ",
"ヘ" =>"ヘ",
"ベ" =>"ベ",
"ペ" =>"ペ",
"ホ" =>"ホ",
"ボ" =>"ボ",
"ポ" =>"ポ",
"マ" =>"マ",
"ミ" =>"ミ",
"ム" =>"ム",
"メ" =>"メ",
"モ" =>"モ",
"ャ" =>"ャ",
"ヤ" =>"ヤ",
"ュ" =>"ュ",
"ユ" =>"ユ",
"ョ" =>"ョ",
"ヨ" =>"ヨ",
"ラ" =>"ラ",
"リ" =>"リ",
"ル" =>"ル",
"レ" =>"レ",
"ロ" =>"ロ",
"ワ" =>"ワ",
"ヲ" =>"ヲ",
"ン" =>"ン",
"ー" =>"-",
"ヮ" =>"ヮ",
"ヰ" =>"ヰ",
"ヱ" =>"ヱ",
"ヵ" =>"ヵ",
"ヶ" =>"ヶ",
"ヴ" =>"ヴ",
"ヽ" =>"ヽ",
"ヾ" =>"ヾ",
"・" =>"・",
"「" =>"「",
"」" =>"」",
"。" =>"。",
"、" =>"、",
"!" =>"!",
""" =>"\"",
"#" =>"#",
"$" =>"$",
"%" =>"%",
"&" =>"&",
"'" =>"'",
"(" =>"",
")" =>")",
"*" =>"*",
"+" =>"+",
"," =>",",
"." =>".",
"/" =>"/",
":" =>":",
";" =>";",
"<" =>"<",
"=" =>"=",
">" =>">",
"?" =>"?",
"@" =>"@",
"A" =>"A",
"B" =>"B",
"C" =>"C",
"D" =>"D",
"E" =>"E",
"F" =>"F",
"G" =>"G",
"H" =>"H",
"I" =>"I",
"J" =>"J",
"K" =>"K",
"L" =>"L",
"M" =>"M",
"N" =>"N",
"O" =>"O",
"P" =>"P",
"Q" =>"Q",
"R" =>"R",
"S" =>"S",
"T" =>"T",
"U" =>"U",
"V" =>"V",
"W" =>"W",
"X" =>"X",
"Y" =>"Y",
"Z" =>"Z",
"[" =>"[",
"\" =>"\\",
"]" =>"]",
"^" =>"^",
"_" =>"_",
"`" =>"`",
"a" =>"a",
"b" =>"b",
"c" =>"c",
"d" =>"d",
"e" =>"e",
"f" =>"f",
"g" =>"g",
"h" =>"h",
"i" =>"i",
"j" =>"j",
"k" =>"k",
"l" =>"l",
"m" =>"m",
"n" =>"n",
"o" =>"o",
"p" =>"p",
"q" =>"q",
"r" =>"r",
"s" =>"s",
"t" =>"t",
"u" =>"u",
"v" =>"v",
"w" =>"w",
"x" =>"x",
"y" =>"y",
"z" =>"z",
"{" =>"{",
"|" =>"|",
"}" =>"}",
"~" =>"~",
" " =>" ",
"0" =>"0",
"1" =>"1",
"2" =>"2",
"3" =>"3",
"4" =>"4",
"5" =>"5",
"6" =>"6",
"7" =>"7",
"8" =>"8",
"9" =>"9",
"ぁ" =>"ァ",
"あ" =>"ア",
"ぃ" =>"ィ",
"い" =>"イ",
"ぅ" =>"ゥ",
"う" =>"ウ",
"ぇ" =>"ェ",
"え" =>"エ",
"ぉ" =>"ォ",
"お" =>"オ",
"か" =>"カ",
"が" =>"ガ",
"き" =>"キ",
"ぎ" =>"ギ",
"く" =>"ク",
"ぐ" =>"グ",
"け" =>"ケ",
"げ" =>"ゲ",
"こ" =>"コ",
"ご" =>"ゴ",
"さ" =>"サ",
"ざ" =>"ザ",
"し" =>"シ",
"じ" =>"ジ",
"す" =>"ス",
"ず" =>"ズ",
"せ" =>"セ",
"ぜ" =>"ゼ",
"そ" =>"ソ",
"ぞ" =>"ゾ",
"た" =>"タ",
"だ" =>"ダ",
"ち" =>"チ",
"ぢ" =>"ヂ",
"っ" =>"ッ",
"つ" =>"ツ",
"づ" =>"ヅ",
"て" =>"テ",
"で" =>"デ",
"と" =>"ト",
"ど" =>"ド",
"な" =>"ナ",
"に" =>"ニ",
"ぬ" =>"ヌ",
"ね" =>"ネ",
"の" =>"ノ",
"は" =>"ハ",
"ば" =>"バ",
"ぱ" =>"パ",
"ひ" =>"ヒ",
"び" =>"ビ",
"ぴ" =>"ピ",
"ふ" =>"フ",
"ぶ" =>"ブ",
"ぷ" =>"プ",
"へ" =>"ヘ",
"べ" =>"ベ",
"ぺ" =>"ペ",
"ほ" =>"ホ",
"ぼ" =>"ボ",
"ぽ" =>"ポ",
"ま" =>"マ",
"み" =>"ミ",
"む" =>"ム",
"め" =>"メ",
"も" =>"モ",
"ゃ" =>"ャ",
"や" =>"ヤ",
"ゅ" =>"ュ",
"ゆ" =>"ユ",
"ょ" =>"ョ",
"よ" =>"ヨ",
"ら" =>"ラ",
"り" =>"リ",
"る" =>"ル",
"れ" =>"レ",
"ろ" =>"ロ",
"わ" =>"ワ",
"を" =>"ヲ",
"ん" =>"ン",
"ゎ" =>"ヮ",
"ゐ" =>"ヰ",
"ゑ" =>"ヱ",
"ゕ" =>"ヵ",
"ゖ" =>"ヶ",
"ゔ" =>"ヴ",
"ゝ" =>"ヽ",
"ゞ" =>"ヾ",
];
pub static ALLOWED_HW_KANA: &[&str] = &[
"-", "-", "ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "ガ", "キ", "ギ", "ク", "グ",
"ケ", "ゲ", "コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ", "ゼ", "ソ", "ゾ", "タ", "ダ", "チ",
"ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "バ", "パ", "ヒ",
"ビ", "ピ", "フ", "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ", "マ", "ミ", "ム", "メ", "モ", "ャ",
"ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン", "-", "ヮ", "ヰ", "ヱ", "ヵ",
"ヶ", "ヴ", "ヽ", "ヾ", "・", "「", "」", "。", "、", "!", "\"", "#", "$", "%", "&", "'", "", ")",
"*", "+", ",", ".", "/", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
"[", "\\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", " ", "0",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ",
"カ", "ガ", "キ", "ギ", "ク", "グ", "ケ", "ゲ", "コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ",
"ゼ", "ソ", "ゾ", "タ", "ダ", "チ", "ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", "ナ", "ニ", "ヌ",
"ネ", "ノ", "ハ", "バ", "パ", "ヒ", "ビ", "ピ", "フ", "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ",
"マ", "ミ", "ム", "メ", "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン",
"ヮ", "ヰ", "ヱ", "ヵ", "ヶ", "ヴ", "ヽ", "ヾ",
];
pub static MULTI_BYTE_CHARS: phf::Map<char, u8> = phf_map![
'ガ' => 1,
'ギ' => 1,
'グ' => 1,
'ゲ' => 1,
'ゴ' => 1,
'ザ' => 1,
'ジ' => 1,
'ズ' => 1,
'ゼ' => 1,
'ゾ' => 1,
'ダ' => 1,
'ヂ' => 1,
'ヅ' => 1,
'デ' => 1,
'ド' => 1,
'バ' => 1,
'パ' => 1,
'ビ' => 1,
'ピ' => 1,
'ブ' => 1,
'プ' => 1,
'ベ' => 1,
'ペ' => 1,
'ボ' => 1,
'ポ' => 1,
'ヮ' => 1,
'ヰ' => 1,
'ヱ' => 1,
'ヵ' => 1,
'ヶ' => 1,
'ヴ' => 1,
'ヽ' => 1,
'ヾ' => 1,
'が' => 1,
'ぎ' => 1,
'ぐ' => 1,
'げ' => 1,
'ご' => 1,
'ざ' => 1,
'じ' => 1,
'ず' => 1,
'ぜ' => 1,
'ぞ' => 1,
'だ' => 1,
'ぢ' => 1,
'づ' => 1,
'で' => 1,
'ど' => 1,
'ば' => 1,
'ぱ' => 1,
'び' => 1,
'ぴ' => 1,
'ぶ' => 1,
'ぷ' => 1,
'べ' => 1,
'ぺ' => 1,
'ぼ' => 1,
'ぽ' => 1,
'ゎ' => 1,
'ゐ' => 1,
'ゑ' => 1,
'ゕ' => 1,
'ゖ' => 1,
'ゔ' => 1,
'ゝ' => 1,
'ゞ' => 1
];
pub static HW_TO_FW_RANGE_MAP: phf::Map<char, char> = phf_map![
'0' => '0',
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
'7' => '7',
'8' => '8',
'9' => '9',
'-' => '-',
'/' => '/',
';' => ';',
];