-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathFont Book Checker.py
executable file
·56 lines (49 loc) · 60.6 KB
/
Font Book Checker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#MenuTitle: Font Book Checker
# encoding: utf-8
# by Tim Ahrens
# http://justanotherfoundry.com
# https://github.com/justanotherfoundry/freemix-glyphsapp
__doc__='''
Outputs information on the supported languages as per Font Book on macOS (make sure the Macro Panel is open).
'''
from GlyphsApp import *
MINIMUM_POPULATION = 0
MAXIMUM_MISSING_CHARS = 25
language_names = {'aa': 'Afar', 'ab': 'Abkhazian', 'ace': 'Acehnese', 'ach': 'Acoli', 'ada': 'Adangme', 'ady': 'Adyghe', 'ae': 'Avestan', 'aeb': 'Tunisian Arabic', 'af': 'Afrikaans', 'afh': 'Afrihili', 'agq': 'Aghem', 'ain': 'Ainu', 'ak': 'Akan', 'akk': 'Akkadian', 'akz': 'Alabama', 'ale': 'Aleut', 'aln': 'Gheg Albanian', 'alt': 'Southern Altai', 'am': 'Amharic', 'an': 'Aragonese', 'ang': 'Old English', 'ann': 'Obolo', 'anp': 'Angika', 'ar': 'Arabic', 'arc': 'Aramaic', 'arn': 'Mapuche', 'aro': 'Araona', 'arp': 'Arapaho', 'arq': 'Algerian Arabic', 'ars': 'Najdi Arabic', 'arw': 'Arawak', 'ary': 'Moroccan Arabic', 'arz': 'Egyptian Arabic', 'as': 'Assamese', 'asa': 'Asu', 'ase': 'American Sign Language', 'ast': 'Asturian', 'atj': 'Atikamekw', 'av': 'Avaric', 'avk': 'Kotava', 'awa': 'Awadhi', 'ay': 'Aymara', 'az': 'Azerbaijani', 'ba': 'Bashkir', 'bal': 'Baluchi', 'ban': 'Balinese', 'bar': 'Bavarian', 'bas': 'Basaa', 'bax': 'Bamun', 'bbc': 'Batak Toba', 'bbj': 'Ghomala', 'be': 'Belarusian', 'bej': 'Beja', 'bem': 'Bemba', 'bew': 'Betawi', 'bez': 'Bena', 'bfd': 'Bafut', 'bfq': 'Badaga', 'bg': 'Bulgarian', 'bgc': 'Haryanvi', 'bgn': 'Western Balochi', 'bho': 'Bhojpuri', 'bi': 'Bislama', 'bik': 'Bikol', 'bin': 'Bini', 'bjn': 'Banjar', 'bkm': 'Kom', 'bla': 'Siksiká', 'blo': 'Anii', 'blt': 'Tai Dam', 'bm': 'Bambara', 'bn': 'Bangla', 'bo': 'Tibetan', 'bpy': 'Bishnupriya', 'bqi': 'Bakhtiari', 'br': 'Breton', 'bra': 'Braj', 'brh': 'Brahui', 'brx': 'Bodo', 'bs': 'Bosnian', 'bss': 'Akoose', 'bua': 'Buriat', 'bug': 'Buginese', 'bum': 'Bulu', 'byn': 'Blin', 'byv': 'Medumba', 'ca': 'Catalan', 'cad': 'Caddo', 'car': 'Carib', 'cay': 'Cayuga', 'cch': 'Atsam', 'ccp': 'Chakma', 'ce': 'Chechen', 'ceb': 'Cebuano', 'cgg': 'Chiga', 'ch': 'Chamorro', 'chb': 'Chibcha', 'chg': 'Chagatai', 'chk': 'Chuukese', 'chm': 'Mari', 'chn': 'Chinook Jargon', 'cho': 'Choctaw', 'chp': 'Chipewyan', 'chr': 'Cherokee', 'chy': 'Cheyenne', 'cic': 'Chickasaw', 'ckb': 'Central Kurdish', 'clc': 'Chilcotin', 'co': 'Corsican', 'cop': 'Coptic', 'cps': 'Capiznon', 'cr': 'Cree', 'crg': 'Michif', 'crh': 'Crimean Tatar', 'crj': 'Southern East Cree', 'crk': 'Plains Cree', 'crl': 'Northern East Cree', 'crm': 'Moose Cree', 'crr': 'Carolina Algonquian', 'crs': 'Seselwa Creole French', 'cs': 'Czech', 'csb': 'Kashubian', 'csw': 'Swampy Cree', 'cu': 'Church Slavic', 'cv': 'Chuvash', 'cwd': 'Woods Cree', 'cy': 'Welsh', 'da': 'Danish', 'dak': 'Dakota', 'dar': 'Dargwa', 'dav': 'Taita', 'de': 'German', 'del': 'Delaware', 'den': 'Slave', 'dgr': 'Dogrib', 'din': 'Dinka', 'dje': 'Zarma', 'doi': 'Dogri', 'dsb': 'Lower Sorbian', 'dtp': 'Central Dusun', 'dua': 'Duala', 'dum': 'Middle Dutch', 'dv': 'Divehi', 'dyo': 'Jola-Fonyi', 'dyu': 'Dyula', 'dz': 'Dzongkha', 'dzg': 'Dazaga', 'ebu': 'Embu', 'ee': 'Ewe', 'efi': 'Efik', 'egl': 'Emilian', 'egy': 'Ancient Egyptian', 'eka': 'Ekajuk', 'el': 'Greek', 'elx': 'Elamite', 'en': 'English', 'enm': 'Middle English', 'eo': 'Esperanto', 'es': 'Spanish', 'esu': 'Central Yupik', 'et': 'Estonian', 'eu': 'Basque', 'ewo': 'Ewondo', 'ext': 'Extremaduran', 'fa': 'Persian', 'fan': 'Fang', 'fat': 'Fanti', 'ff': 'Fula', 'fi': 'Finnish', 'fil': 'Filipino', 'fit': 'Tornedalen Finnish', 'fj': 'Fijian', 'fo': 'Faroese', 'fon': 'Fon', 'fr': 'French', 'frc': 'Cajun French', 'frm': 'Middle French', 'fro': 'Old French', 'frp': 'Arpitan', 'frr': 'Northern Frisian', 'frs': 'Eastern Frisian', 'fur': 'Friulian', 'fy': 'Western Frisian', 'ga': 'Irish', 'gaa': 'Ga', 'gag': 'Gagauz', 'gan': 'Gan Chinese', 'gay': 'Gayo', 'gba': 'Gbaya', 'gbz': 'Zoroastrian Dari', 'gd': 'Scottish Gaelic', 'gez': 'Geez', 'gil': 'Gilbertese', 'gl': 'Galician', 'glk': 'Gilaki', 'gmh': 'Middle High German', 'gn': 'Guarani', 'goh': 'Old High German', 'gon': 'Gondi', 'gor': 'Gorontalo', 'got': 'Gothic', 'grb': 'Grebo', 'grc': 'Ancient Greek', 'gsw': 'Swiss German', 'gu': 'Gujarati', 'guc': 'Wayuu', 'gur': 'Frafra', 'guz': 'Gusii', 'gv': 'Manx', 'gwi': 'Gwichʼin', 'ha': 'Hausa', 'hai': 'Haida', 'hak': 'Hakka Chinese', 'haw': 'Hawaiian', 'hax': 'Southern Haida', 'hdn': 'Northern Haida', 'he': 'Hebrew', 'hi': 'Hindi', 'hif': 'Fiji Hindi', 'hil': 'Hiligaynon', 'hit': 'Hittite', 'hmn': 'Hmong', 'hnj': 'Hmong Njua', 'ho': 'Hiri Motu', 'hr': 'Croatian', 'hsb': 'Upper Sorbian', 'hsn': 'Xiang Chinese', 'ht': 'Haitian Creole', 'hu': 'Hungarian', 'hup': 'Hupa', 'hur': 'Halkomelem', 'hy': 'Armenian', 'hz': 'Herero', 'ia': 'Interlingua', 'iba': 'Iban', 'ibb': 'Ibibio', 'id': 'Indonesian', 'ie': 'Interlingue', 'ig': 'Igbo', 'ii': 'Sichuan Yi', 'ik': 'Inupiaq', 'ike': 'Eastern Canadian Inuktitut', 'ikt': 'Western Canadian Inuktitut', 'ilo': 'Iloko', 'inh': 'Ingush', 'io': 'Ido', 'is': 'Icelandic', 'it': 'Italian', 'iu': 'Inuktitut', 'izh': 'Ingrian', 'ja': 'Japanese', 'jam': 'Jamaican Creole English', 'jbo': 'Lojban', 'jgo': 'Ngomba', 'jmc': 'Machame', 'jpr': 'Judeo-Persian', 'jrb': 'Judeo-Arabic', 'jut': 'Jutish', 'jv': 'Javanese', 'ka': 'Georgian', 'kaa': 'Kara-Kalpak', 'kab': 'Kabyle', 'kac': 'Kachin', 'kaj': 'Jju', 'kam': 'Kamba', 'kaw': 'Kawi', 'kbd': 'Kabardian', 'kbl': 'Kanembu', 'kcg': 'Tyap', 'kde': 'Makonde', 'kea': 'Kabuverdianu', 'ken': 'Kenyang', 'kfo': 'Koro', 'kg': 'Kongo', 'kgp': 'Kaingang', 'kha': 'Khasi', 'kho': 'Khotanese', 'khq': 'Koyra Chiini', 'khw': 'Khowar', 'ki': 'Kikuyu', 'kiu': 'Kirmanjki', 'kj': 'Kuanyama', 'kk': 'Kazakh', 'kkj': 'Kako', 'kl': 'Kalaallisut', 'kln': 'Kalenjin', 'km': 'Khmer', 'kmb': 'Kimbundu', 'kn': 'Kannada', 'ko': 'Korean', 'koi': 'Komi-Permyak', 'kok': 'Konkani', 'kos': 'Kosraean', 'kpe': 'Kpelle', 'kr': 'Kanuri', 'krc': 'Karachay-Balkar', 'kri': 'Krio', 'krj': 'Kinaray-a', 'krl': 'Karelian', 'kru': 'Kurukh', 'ks': 'Kashmiri', 'ksb': 'Shambala', 'ksf': 'Bafia', 'ksh': 'Colognian', 'ku': 'Kurdish', 'kum': 'Kumyk', 'kut': 'Kutenai', 'kv': 'Komi', 'kw': 'Cornish', 'kwk': 'Kwakʼwala', 'kxv': 'Kuvi', 'ky': 'Kyrgyz', 'la': 'Latin', 'lad': 'Ladino', 'lag': 'Langi', 'lah': 'Western Panjabi', 'lam': 'Lamba', 'lb': 'Luxembourgish', 'lez': 'Lezghian', 'lfn': 'Lingua Franca Nova', 'lg': 'Ganda', 'li': 'Limburgish', 'lij': 'Ligurian', 'lil': 'Lillooet', 'liv': 'Livonian', 'lkt': 'Lakota', 'lmo': 'Lombard', 'ln': 'Lingala', 'lo': 'Lao', 'lol': 'Mongo', 'lou': 'Louisiana Creole', 'loz': 'Lozi', 'lrc': 'Northern Luri', 'lsm': 'Saamia', 'lt': 'Lithuanian', 'ltg': 'Latgalian', 'lu': 'Luba-Katanga', 'lua': 'Luba-Lulua', 'lui': 'Luiseno', 'lun': 'Lunda', 'luo': 'Luo', 'lus': 'Mizo', 'luy': 'Luyia', 'lv': 'Latvian', 'lzh': 'Literary Chinese', 'lzz': 'Laz', 'mad': 'Madurese', 'maf': 'Mafa', 'mag': 'Magahi', 'mai': 'Maithili', 'mak': 'Makasar', 'man': 'Mandingo', 'mas': 'Masai', 'mde': 'Maba', 'mdf': 'Moksha', 'mdr': 'Mandar', 'men': 'Mende', 'mer': 'Meru', 'mfe': 'Morisyen', 'mg': 'Malagasy', 'mga': 'Middle Irish', 'mgh': 'Makhuwa-Meetto', 'mgo': 'Metaʼ', 'mh': 'Marshallese', 'mi': 'Māori', 'mic': "Mi'kmaw", 'min': 'Minangkabau', 'mk': 'Macedonian', 'ml': 'Malayalam', 'mn': 'Mongolian', 'mnc': 'Manchu', 'mni': 'Manipuri', 'moe': 'Innu-aimun', 'moh': 'Mohawk', 'mos': 'Mossi', 'mr': 'Marathi', 'mrj': 'Western Mari', 'ms': 'Malay', 'mt': 'Maltese', 'mua': 'Mundang', 'mul': 'Multiple languages', 'mus': 'Muscogee', 'mwl': 'Mirandese', 'mwr': 'Marwari', 'mwv': 'Mentawai', 'my': 'Burmese', 'mye': 'Myene', 'myv': 'Erzya', 'mzn': 'Mazanderani', 'na': 'Nauru', 'nan': 'Min Nan Chinese', 'nap': 'Neapolitan', 'naq': 'Nama', 'nb': 'Norwegian Bokmål', 'nd': 'North Ndebele', 'nds': 'Low German', 'ne': 'Nepali', 'new': 'Newari', 'ng': 'Ndonga', 'nia': 'Nias', 'niu': 'Niuean', 'njo': 'Ao Naga', 'nl': 'Dutch', 'nmg': 'Kwasio', 'nn': 'Norwegian Nynorsk', 'nnh': 'Ngiemboon', 'no': 'Norwegian', 'nog': 'Nogai', 'non': 'Old Norse', 'nov': 'Novial', 'nqo': 'N’Ko', 'nr': 'South Ndebele', 'nso': 'Northern Sotho', 'nus': 'Nuer', 'nv': 'Navajo', 'nwc': 'Classical Newari', 'ny': 'Nyanja', 'nym': 'Nyamwezi', 'nyn': 'Nyankole', 'nyo': 'Nyoro', 'nzi': 'Nzima', 'oc': 'Occitan', 'oj': 'Ojibwa', 'ojb': 'Northwestern Ojibwa', 'ojc': 'Central Ojibwa', 'ojg': 'Eastern Ojibwa', 'ojs': 'Oji-Cree', 'ojw': 'Western Ojibwa', 'oka': 'Okanagan', 'om': 'Oromo', 'or': 'Odia', 'os': 'Ossetic', 'osa': 'Osage', 'ota': 'Ottoman Turkish', 'pa': 'Punjabi', 'pag': 'Pangasinan', 'pal': 'Pahlavi', 'pam': 'Pampanga', 'pap': 'Papiamento', 'pau': 'Palauan', 'pcd': 'Picard', 'pcm': 'Nigerian Pidgin', 'pdc': 'Pennsylvania German', 'pdt': 'Plautdietsch', 'peo': 'Old Persian', 'pfl': 'Palatine German', 'phn': 'Phoenician', 'pi': 'Pali', 'pis': 'Pijin', 'pl': 'Polish', 'pms': 'Piedmontese', 'pnt': 'Pontic', 'pon': 'Pohnpeian', 'pqm': 'Maliseet-Passamaquoddy', 'prg': 'Prussian', 'pro': 'Old Provençal', 'ps': 'Pashto', 'pt': 'Portuguese', 'qu': 'Quechua', 'quc': 'Kʼicheʼ', 'qug': 'Chimborazo Highland Quichua', 'raj': 'Rajasthani', 'rap': 'Rapanui', 'rar': 'Rarotongan', 'rgn': 'Romagnol', 'rhg': 'Rohingya', 'rif': 'Riffian', 'rm': 'Romansh', 'rn': 'Rundi', 'ro': 'Romanian', 'rof': 'Rombo', 'rom': 'Romany', 'rtm': 'Rotuman', 'ru': 'Russian', 'rue': 'Rusyn', 'rug': 'Roviana', 'rup': 'Aromanian', 'rw': 'Kinyarwanda', 'rwk': 'Rwa', 'sa': 'Sanskrit', 'sad': 'Sandawe', 'sah': 'Yakut', 'sam': 'Samaritan Aramaic', 'saq': 'Samburu', 'sas': 'Sasak', 'sat': 'Santali', 'saz': 'Saurashtra', 'sba': 'Ngambay', 'sbp': 'Sangu', 'sc': 'Sardinian', 'scn': 'Sicilian', 'sco': 'Scots', 'sd': 'Sindhi', 'sdc': 'Sassarese Sardinian', 'sdh': 'Southern Kurdish', 'se': 'Northern Sami', 'see': 'Seneca', 'seh': 'Sena', 'sei': 'Seri', 'sel': 'Selkup', 'ses': 'Koyraboro Senni', 'sg': 'Sango', 'sga': 'Old Irish', 'sgs': 'Samogitian', 'sh': 'Serbo-Croatian', 'shi': 'Tachelhit', 'shn': 'Shan', 'shu': 'Chadian Arabic', 'si': 'Sinhala', 'sid': 'Sidamo', 'sk': 'Slovak', 'sl': 'Slovenian', 'slh': 'Southern Lushootseed', 'sli': 'Lower Silesian', 'sly': 'Selayar', 'sm': 'Samoan', 'sma': 'Southern Sami', 'smj': 'Lule Sami', 'smn': 'Inari Sami', 'sms': 'Skolt Sami', 'sn': 'Shona', 'snk': 'Soninke', 'so': 'Somali', 'sog': 'Sogdien', 'sq': 'Albanian', 'sr': 'Serbian', 'srn': 'Sranan Tongo', 'srr': 'Serer', 'ss': 'Swati', 'ssy': 'Saho', 'st': 'Southern Sotho', 'stq': 'Saterland Frisian', 'str': 'Straits Salish', 'su': 'Sundanese', 'suk': 'Sukuma', 'sus': 'Susu', 'sux': 'Sumerian', 'sv': 'Swedish', 'sw': 'Swahili', 'swb': 'Comorian', 'syc': 'Classical Syriac', 'syr': 'Syriac', 'szl': 'Silesian', 'ta': 'Tamil', 'tce': 'Southern Tutchone', 'tcy': 'Tulu', 'te': 'Telugu', 'tem': 'Timne', 'teo': 'Teso', 'ter': 'Tereno', 'tet': 'Tetum', 'tg': 'Tajik', 'tgx': 'Tagish', 'th': 'Thai', 'tht': 'Tahltan', 'ti': 'Tigrinya', 'tig': 'Tigre', 'tiv': 'Tiv', 'tk': 'Turkmen', 'tkl': 'Tokelau', 'tkr': 'Tsakhur', 'tl': 'Tagalog', 'tlh': 'Klingon', 'tli': 'Tlingit', 'tly': 'Talysh', 'tmh': 'Tamashek', 'tn': 'Tswana', 'to': 'Tongan', 'tog': 'Nyasa Tonga', 'tok': 'Toki Pona', 'tpi': 'Tok Pisin', 'tr': 'Turkish', 'tru': 'Turoyo', 'trv': 'Taroko', 'trw': 'Torwali', 'ts': 'Tsonga', 'tsd': 'Tsakonian', 'tsi': 'Tsimshian', 'tt': 'Tatar', 'ttm': 'Northern Tutchone', 'ttt': 'Muslim Tat', 'tum': 'Tumbuka', 'tvl': 'Tuvalu', 'tw': 'Twi', 'twq': 'Tasawaq', 'ty': 'Tahitian', 'tyv': 'Tuvinian', 'tzm': 'Central Atlas Tamazight', 'udm': 'Udmurt', 'ug': 'Uyghur', 'uga': 'Ugaritic', 'uk': 'Ukrainian', 'umb': 'Umbundu', 'und': 'Unknown language', 'ur': 'Urdu', 'uz': 'Uzbek', 'vai': 'Vai', 've': 'Venda', 'vec': 'Venetian', 'vep': 'Veps', 'vi': 'Vietnamese', 'vls': 'West Flemish', 'vmf': 'Main-Franconian', 'vmw': 'Makhuwa', 'vo': 'Volapük', 'vot': 'Votic', 'vro': 'Võro', 'vun': 'Vunjo', 'wa': 'Walloon', 'wae': 'Walser', 'wal': 'Wolaytta', 'war': 'Waray', 'was': 'Washo', 'wbp': 'Warlpiri', 'wo': 'Wolof', 'wuu': 'Wu Chinese', 'xal': 'Kalmyk', 'xh': 'Xhosa', 'xmf': 'Mingrelian', 'xnr': 'Kangri', 'xog': 'Soga', 'yao': 'Yao', 'yap': 'Yapese', 'yav': 'Yangben', 'ybb': 'Yemba', 'yi': 'Yiddish', 'yo': 'Yoruba', 'yrl': 'Nheengatu', 'yue': 'Cantonese', 'za': 'Zhuang', 'zap': 'Zapotec', 'zbl': 'Blissymbols', 'zea': 'Zeelandic', 'zen': 'Zenaga', 'zgh': 'Standard Moroccan Tamazight', 'zh': 'Chinese', 'zu': 'Zulu', 'zun': 'Zuni', 'zxx': 'No linguistic content', 'zza': 'Zaza'}
languages_population = {'aa': 2119662, 'ab': 91952, 'ace': 3738364, 'ach': 1600361, 'ada': 880206, 'ady': 444583, 'ae': 0, 'aeb': 10549080, 'af': 9318844, 'afh': 0, 'agq': 38843, 'ain': 0, 'ak': 11442678, 'akk': 0, 'akz': 0, 'ale': 0, 'aln': 1430249, 'alt': 19841, 'am': 35728475, 'an': 26008, 'ang': 0, 'ann': 0, 'anp': 0, 'ar': 351664187, 'arc': 0, 'arn': 272802, 'aro': 104, 'arp': 0, 'arq': 35667507, 'ars': 1025205, 'arw': 0, 'ary': 30938679, 'arz': 66639360, 'as': 17239170, 'asa': 702633, 'ase': 0, 'ast': 650205, 'atj': 6407, 'av': 552715, 'avk': 0, 'awa': 25862923, 'ay': 2838620, 'az': 32446679, 'ba': 1842386, 'bal': 8227886, 'ban': 4806468, 'bar': 22043626, 'bas': 332940, 'bax': 332940, 'bbc': 2456639, 'bbj': 388430, 'be': 10064517, 'bej': 2460326, 'bem': 5402246, 'bew': 5607546, 'bez': 995397, 'bfd': 158146, 'bfq': 305000, 'bg': 7878313, 'bgc': 15913080, 'bgn': 2037380, 'bho': 32934796, 'bi': 268499, 'bik': 3275430, 'bin': 1519598, 'bjn': 4010287, 'bkm': 360685, 'bla': 4900, 'blo': 51505, 'blt': 681176, 'bm': 9385632, 'bn': 267193287, 'bo': 3006695, 'bpy': 90174, 'bqi': 1188926, 'br': 563140, 'bra': 54369, 'brh': 3035513, 'brx': 1856526, 'bs': 7594468, 'bss': 149823, 'bua': 311788, 'bug': 4298211, 'bum': 1276269, 'byn': 79055, 'byv': 305195, 'ca': 8679137, 'cad': 0, 'car': 0, 'cay': 0, 'cch': 44945, 'ccp': 729137, 'ce': 935365, 'ceb': 26203440, 'cgg': 2335662, 'ch': 46323, 'chb': 0, 'chg': 0, 'chk': 30730, 'chm': 524371, 'chn': 0, 'cho': 10977, 'chp': 12815, 'chr': 25613, 'chy': 0, 'cic': 0, 'ckb': 11086548, 'clc': 866, 'co': 162835, 'cop': 0, 'cps': 720594, 'cr': 9046, 'crg': 678, 'crh': 245968, 'crj': 0, 'crk': 4146, 'crl': 376, 'crm': 0, 'crr': 0, 'crs': 94061, 'cs': 13045532, 'csb': 49766, 'csw': 1809, 'cu': 0, 'cv': 1842386, 'cwd': 0, 'cy': 884910, 'da': 7072055, 'dak': 20831, 'dar': 368477, 'dav': 438928, 'de': 136350219, 'del': 0, 'den': 2299, 'dgr': 2110, 'din': 0, 'dje': 3871308, 'doi': 2652180, 'dsb': 6973, 'dtp': 182851, 'dua': 133176, 'dum': 0, 'dv': 388043, 'dyo': 409146, 'dyu': 6667328, 'dz': 370341, 'dzg': 0, 'ebu': 802918, 'ee': 4690856, 'efi': 2996392, 'egl': 31201, 'egy': 0, 'eka': 0, 'el': 12292235, 'elx': 0, 'en': 1636485484, 'enm': 0, 'eo': 301, 'es': 493528071, 'esu': 20956, 'et': 878448, 'eu': 1088518, 'ewo': 860095, 'ext': 245077, 'fa': 84710454, 'fan': 426450, 'fat': 0, 'ff': 7788902, 'fi': 5736840, 'fil': 67471094, 'fit': 56113, 'fj': 365029, 'fo': 71349, 'fon': 3216150, 'fr': 278611489, 'frc': 27941, 'frm': 0, 'fro': 0, 'frp': 63777, 'frr': 9619, 'frs': 2003, 'fur': 37441, 'fy': 743057, 'ga': 1237486, 'gaa': 821525, 'gag': 111028, 'gan': 23698340, 'gay': 320431, 'gba': 0, 'gbz': 7982, 'gd': 72337, 'gez': 0, 'gil': 67077, 'gl': 3515529, 'glk': 3906471, 'gmh': 0, 'gn': 5827106, 'goh': 0, 'gon': 3182616, 'gor': 1094806, 'got': 0, 'grb': 0, 'grc': 0, 'gsw': 7956950, 'gu': 61721797, 'guc': 132528, 'gur': 1026907, 'guz': 2622867, 'gv': 1719, 'gwi': 301, 'ha': 40411880, 'hai': 0, 'hak': 32062459, 'haw': 29604, 'hax': 0, 'hdn': 0, 'he': 8675480, 'hi': 546882142, 'hif': 383749, 'hil': 9171204, 'hit': 0, 'hmn': 0, 'hnj': 781682, 'ho': 152448, 'hr': 6813158, 'hsb': 12825, 'hsn': 40426580, 'ht': 8964918, 'hu': 12443426, 'hup': 0, 'hur': 716, 'hy': 5317267, 'hz': 239336, 'ia': 135, 'iba': 816302, 'ibb': 2996392, 'id': 171207687, 'ie': 1, 'ig': 27823640, 'ii': 8364120, 'ik': 7983, 'ike': 0, 'ikt': 0, 'ilo': 10481376, 'inh': 226755, 'io': 0, 'is': 350734, 'it': 70247055, 'iu': 90464, 'izh': 141, 'ja': 119729024, 'jam': 2668141, 'jbo': 0, 'jgo': 94333, 'jmc': 433290, 'jpr': 0, 'jrb': 0, 'jut': 0, 'jv': 91180665, 'ka': 3543644, 'kaa': 2177222, 'kab': 3351886, 'kac': 962031, 'kaj': 449458, 'kam': 4068120, 'kaw': 0, 'kbd': 1070872, 'kbl': 0, 'kcg': 199046, 'kde': 1463820, 'kea': 530762, 'ken': 69362, 'kfo': 63206, 'kg': 1526700, 'kgp': 50811, 'kha': 1060872, 'kho': 0, 'khq': 332407, 'khw': 350251, 'ki': 9099743, 'kiu': 155833, 'kj': 920524, 'kk': 13637392, 'kkj': 149823, 'kl': 55440, 'kln': 4068120, 'km': 15065030, 'kmb': 8130575, 'kn': 49065330, 'ko': 78357046, 'koi': 63774, 'kok': 4243488, 'kos': 7990, 'kpe': 1186303, 'kr': 0, 'krc': 240927, 'kri': 6293683, 'krj': 425805, 'krl': 116212, 'kru': 2519571, 'ks': 5598084, 'ksb': 995397, 'ksf': 88784, 'ksh': 240479, 'ku': 6866754, 'kum': 283444, 'kut': 0, 'kv': 255099, 'kw': 1972, 'kwk': 376, 'kxv': 38456, 'ky': 3338266, 'la': 820, 'lad': 112781, 'lag': 509409, 'lah': 93433552, 'lam': 0, 'lb': 421015, 'lez': 255099, 'lfn': 0, 'lg': 5622890, 'li': 950422, 'lij': 536663, 'lil': 527, 'liv': 0, 'lkt': 8315, 'lmo': 3901516, 'ln': 3514490, 'lo': 5138706, 'lol': 620858, 'lou': 0, 'loz': 1045596, 'lrc': 2020512, 'lsm': 0, 'lt': 2488616, 'ltg': 167429, 'lu': 2340939, 'lua': 9770880, 'lui': 0, 'lun': 0, 'luo': 5245734, 'lus': 0, 'luy': 5888069, 'lv': 1147550, 'lzh': 0, 'lzz': 22964, 'mad': 16822638, 'maf': 205313, 'mag': 15913080, 'mai': 19249149, 'mak': 1949289, 'man': 3511762, 'mas': 1734738, 'mde': 0, 'mdf': 297616, 'mdr': 245663, 'men': 1813082, 'mer': 2141116, 'mfe': 1241433, 'mg': 24260130, 'mga': 0, 'mgh': 1354419, 'mgo': 130401, 'mh': 56879, 'mi': 137913, 'mic': 7915, 'min': 8010780, 'mk': 1608562, 'ml': 43257483, 'mn': 6572844, 'mnc': 0, 'mni': 1476590, 'moe': 12062, 'moh': 1771, 'mos': 8334160, 'mr': 92826300, 'mrj': 29761, 'ms': 38097304, 'mt': 457267, 'mua': 277450, 'mul': 0, 'mus': 3991, 'mwl': 0, 'mwr': 15913080, 'mwv': 64086, 'my': 36559231, 'mye': 0, 'myv': 439338, 'mzn': 4246165, 'na': 6930, 'nan': 26486380, 'nap': 605306, 'naq': 289307, 'nb': 5468932, 'nd': 1745556, 'nds': 11520008, 'ne': 20903374, 'new': 1000820, 'ng': 552314, 'nia': 0, 'niu': 1120, 'njo': 305000, 'nl': 31765643, 'nmg': 8878, 'nn': 1366860, 'nnh': 388430, 'no': 5467440, 'nog': 0, 'non': 0, 'nov': 0, 'nqo': 626370, 'nr': 903417, 'nso': 5307578, 'nus': 591427, 'nv': 166319, 'nwc': 0, 'ny': 17026780, 'nym': 1932242, 'nyn': 2724939, 'nyo': 0, 'nzi': 293402, 'oc': 2040397, 'oj': 23747, 'ojb': 0, 'ojc': 0, 'ojg': 0, 'ojs': 15077, 'ojw': 0, 'oka': 490, 'om': 34897120, 'or': 42434880, 'os': 541444, 'osa': 0, 'ota': 0, 'pa': 203571208, 'pag': 1528534, 'pal': 0, 'pam': 2511162, 'pap': 211640, 'pau': 16046, 'pcd': 746330, 'pcm': 44945880, 'pdc': 129729, 'pdt': 90465, 'peo': 0, 'pfl': 0, 'phn': 0, 'pi': 0, 'pis': 561779, 'pl': 41077396, 'pms': 6177, 'pnt': 392462, 'pon': 23560, 'pqm': 490, 'prg': 38, 'pro': 0, 'ps': 53542641, 'pt': 237496876, 'qu': 11385851, 'quc': 1200731, 'qug': 963579, 'raj': 1326090, 'rap': 0, 'rar': 0, 'rgn': 0, 'rhg': 1824081, 'rif': 3692410, 'rm': 42019, 'rn': 7475454, 'ro': 22187406, 'rof': 433290, 'rom': 0, 'rtm': 2527, 'ru': 196713954, 'rue': 527074, 'rug': 9591, 'rup': 0, 'rw': 11083625, 'rwk': 128816, 'sa': 15913, 'sad': 0, 'sah': 453510, 'sam': 0, 'saq': 246228, 'sas': 2590152, 'sat': 7293495, 'saz': 384566, 'sba': 0, 'sbp': 117105, 'sc': 1060845, 'scn': 511702, 'sco': 1644027, 'sd': 40329510, 'sdc': 106084, 'sdh': 3142162, 'se': 51528, 'see': 0, 'seh': 1384517, 'sei': 900, 'sel': 0, 'ses': 664815, 'sg': 2935521, 'sga': 0, 'sgs': 0, 'sh': 0, 'shi': 6187734, 'shn': 3687984, 'shu': 0, 'si': 15564656, 'sid': 3783955, 'sk': 6680269, 'sl': 1973177, 'slh': 0, 'sli': 11867, 'sly': 144194, 'sm': 252716, 'sma': 295, 'smj': 1530, 'smn': 612, 'sms': 612, 'sn': 11782503, 'snk': 1153650, 'so': 16911643, 'sog': 0, 'sq': 6791903, 'sr': 15602407, 'srn': 414506, 'srr': 1731004, 'ss': 2212378, 'ssy': 218923, 'st': 6390567, 'stq': 961, 'str': 0, 'su': 32043120, 'suk': 5094093, 'sus': 1378014, 'sux': 0, 'sv': 12932870, 'sw': 171610295, 'swb': 170720, 'syc': 0, 'syr': 210657, 'szl': 497669, 'ta': 85616157, 'tce': 0, 'tcy': 1989135, 'te': 95478480, 'tem': 1722481, 'teo': 2082973, 'ter': 0, 'tet': 816394, 'tg': 9644223, 'tgx': 0, 'th': 55181920, 'tht': 0, 'ti': 10145910, 'tig': 1094616, 'tiv': 3424448, 'tk': 6870837, 'tkl': 1284, 'tkr': 16329, 'tl': 0, 'tlh': 0, 'tli': 0, 'tly': 1000168, 'tmh': 1776965, 'tn': 6113426, 'to': 100790, 'tog': 207726, 'tok': 0, 'tpi': 5154216, 'tr': 80408082, 'tru': 3034, 'trv': 4720, 'trw': 123755, 'ts': 4880931, 'tsd': 201, 'tsi': 0, 'tt': 1984108, 'ttm': 0, 'ttt': 22452, 'tum': 1780514, 'tvl': 9867, 'tw': 0, 'twq': 7970, 'ty': 91487, 'tyv': 184238, 'tzm': 3485046, 'udm': 538543, 'ug': 8052965, 'uga': 0, 'uk': 29348974, 'umb': 9431467, 'und': 323, 'ur': 290790290, 'uz': 39027133, 'vai': 131905, 've': 1391758, 'vec': 1380828, 'vep': 3543, 'vi': 86222961, 'vls': 1172070, 'vmf': 4809582, 'vmw': 3912766, 'vo': 0, 'vot': 0, 'vro': 70031, 'vun': 433290, 'wa': 679800, 'wae': 11375, 'wal': 1946034, 'war': 3166927, 'was': 0, 'wbp': 2495, 'wo': 11025493, 'wuu': 83641200, 'xal': 0, 'xh': 10182944, 'xmf': 439670, 'xnr': 2121744, 'xog': 2292409, 'yao': 722356, 'yap': 6555, 'yav': 2302, 'ybb': 443920, 'yi': 997212, 'yo': 28685568, 'yrl': 26170, 'yue': 79654758, 'za': 4321462, 'zap': 0, 'zbl': 0, 'zea': 241925, 'zen': 0, 'zgh': 7823574, 'zh': 1304678908, 'zu': 13973827, 'zun': 0, 'zxx': 0, 'zza': 1148245}
required_characters_fontbook = {'aa': 'ABCDEFGHIKLMNOQRSTUWXYabcdefghiklmnoqrstuwxy', 'ab': 'ЏАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЫЬабвгдежзиклмнопрстуфхцчшыьџҚқҞҟҨҩҬҭҲҳҴҵҶҷҼҽҾҿӘәӠӡӶӷԤԥ', 'af': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÂÈÉÊËÎÏÔÖÛáâèéêëîïôöû', 'agq': 'ABCDEFGHIKLMNOPSTUVWYZabcdefghiklmnopstuvwyzÀÂÈÊÌÎÒÔÙÛàâèêìîòôùûĀāĒēĚěĪīŊŋŌōŪūƆƐƗǍǎǏǐǑǒǓǔɄɔɛɨʉʔ̀̂̄̌', 'ak': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghiklmnoprstuwyƆƐɔɛ', 'am': 'ሀሁሂሃሄህሆለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮሯሰሱሲሳሴስሶሷሸሹሺሻሼሽሾሿቀቁቂቃቄቅቆቈቊቋቌቍበቡቢባቤብቦቧቨቩቪቫቬቭቮቯተቱቲታቴትቶቷቸቹቺቻቼችቾቿኀኁኂኃኄኅኆኈኊኋኌኍነኑኒናኔንኖኗኘኙኚኛኜኝኞኟአኡኢኣኤእኦኧከኩኪካኬክኮኰኲኳኴኵኸኹኺኻኼኽኾወዉዊዋዌውዎዐዑዒዓዔዕዖዘዙዚዛዜዝዞዟዠዡዢዣዤዥዦዧየዩዪያዬይዮደዱዲዳዴድዶዷጀጁጂጃጄጅጆጇገጉጊጋጌግጎጐጒጓጔጕጠጡጢጣጤጥጦጧጨጩጪጫጬጭጮጯጰጱጲጳጴጵጶጷጸጹጺጻጼጽጾጿፀፁፂፃፄፅፆፈፉፊፋፌፍፎፏፐፑፒፓፔፕፖፗ', 'an': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÉÍÓÚÜáéíóúü', 'ann': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyzÀÂÈÊÌÎÒÔÙÛàâèêìîòôùûǸǹ̀̄ỌọỘộ', 'ar': 'ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ', 'arn': 'ACDEFGHIKLMNOPRSTUWYacdefghiklmnoprstuwyÑÜñüḺḻṈṉṮṯ', 'as': 'ঁংঃঅআইঈউঊঋএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযলশষসহ়ািীুূৃেৈোৌ্ৎৰৱ', 'asa': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'ast': 'ABCDEFGHILMNOPQRSTUVXYZabcdefghilmnopqrstuvxyzÁÉÍÑÓÚÜáéíñóúüḤḥḶḷ', 'az': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvxyzÇÖÜçöüĞğİıŞşƏə̇', 'ba': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёҒғҘҙҠҡҢңҪҫҮүҺһӘәӨө', 'bal': 'آئابتجدرزسشفلمنهوَُِّْٹپچڈڑژکگۆیێے', 'bas': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyzÀÁÂÈÉÊÌÍÎÒÓÔÙÚÛàáâèéêìíîòóôùúûĀāĒēĚěĪīŃńŊŋŌōŪūƁƆƐǍǎǏǐǑǒǓǔǸǹɓɔɛ̀́̂̄̌᷆᷇', 'be': 'ЁІЎАБВГДЕЖЗЙКЛМНОПРСТУФХЦЧШЫЬЭЮЯабвгдежзйклмнопрстуфхцчшыьэюяёіў', 'bem': 'ABCEFGHIJKLMNOPSTUWYabcefghijklmnopstuwy', 'bew': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÈÉèéĔĕ', 'bez': 'ABCDEFGHIJKLMNOPQRSTUVWYZabcdefghijklmnopqrstuvwyz', 'bg': 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯабвгдежзийклмнопрстуфхцчшщъьюя', 'bgc': 'ँःअआइईउऊऋएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसहािीुूृॅेैोौ्', 'bgn': 'آئابتثجحخدرزسشصضطظغفقلمنوٹپچڈڑژکگھۆیێ', 'bho': 'ँंःकखगघचछजझञटठडढणतथदधनपफबभमयरलवशषसह़ािीुूृॅेैोौ्', 'blo': 'ABCEFGHIJKLMNOPRSTUWYabcefghijklmnoprstuwyÀÁÂÈÉÊÌÍÎÒÓÔÙÚÛàáâèéêìíîòóôùúûŃńŊŋƆƉƎƐƖƱǝǸǹɔɖɛɩʊ̀́̂Ḿḿ', 'blt': 'ꪀꪁꪄꪅꪆꪇꪈꪉꪊꪋꪎꪏꪐꪑꪒꪓꪔꪕꪖꪗꪘꪙꪚꪛꪜꪝꪠꪡꪢꪣꪤꪥꪦꪧꪨꪩꪪꪫꪬꪭꪮꪯꪰꪱꪴꪲꪳꪵꪶꪷꪸꪹꪺꪻꪼꪽꪾ꪿ꫀ꫁ꫂꫛꫜꫝ', 'bm': 'ABCDEFGHIJKLMNOPRSTUWYZabcdefghijklmnoprstuwyzŊŋƆƐƝɔɛɲ', 'bn': 'ঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗৠৡৢৣ৺', 'bo': 'ཀཁགངཅཆཇཉཊཋཌཎཏཐདནཔཕབམཙཚཛཝཞཟའཡརལཤཥསཧཨཪཱིུཷཹེཻོཽཾཿ྄ྀྐྑྒྔྕྖྗྙྚྛྜྞྟྠྡྣྤྥྦྨྩྪྫྭྮྯྰྱྲླྴྵྶྷྸྺྻྼ', 'br': 'ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghijklmnoprstuvwxyzÊÑÙêñùʼ', 'brx': 'ँंअआइईउऊऍएऐऑओऔकखगघचछजझञटठडढणतथदधनपफबभमयरलळवशषसह़ािीुूृॅेैॉोौ्', 'bs': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvzĆćČčĐ𩹮ž', 'bss': 'ABCDEGHIJKLMNOPSTUWYZabcdeghijklmnopstuwyzÁÂÉÊÍÎÓÔÚÛáâéêíîóôúûĀāĒēĚěĪīŃńŊŋŌōŪūƆƏƐǍǎǏǐǑǒǓǔɔəɛʼ́̂̄̌Ḿḿ', 'byn': 'ሀሁሂሃሄህሆለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟረሩሪራሬርሮሯሰሱሲሳሴስሶሷሸሹሺሻሼሽሾሿቀቁቂቃቄቅቆቈቊቋቌቍቐቑቒቓቔቕቖቘቚቛቜቝበቡቢባቤብቦቧቨቩቪቫቬቭቮቯተቱቲታቴትቶቷቸቹቺቻቼችቾቿኀኁኂኃኄኅኆኈኊኋኌኍነኑኒናኔንኖኗኘኙኚኛኜኝኞኟአኡኢኣኤእኦኧከኩኪካኬክኮኰኲኳኴኵኸኹኺኻኼኽኾዀዂዃዄዅወዉዊዋዌውዎዐዑዒዓዔዕዖዘዙዚዛዜዝዞዟዠዡዢዣዤዥዦዧየዩዪያዬይዮደዱዲዳዴድዶዷጀጁጂጃጄጅጆጇገጉጊጋጌግጎጐጒጓጔጕጘጙጚጛጜጝጞጟጠጡጢጣጤጥጦጧጨጩጪጫጬጭጮጯጸጹጺጻጼጽጾጿፈፉፊፋፌፍፎፏፐፑፒፓፔፕፖፗ፟ⶓⶔⶕⶖ', 'ca': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz·ÀÇÈÉÍÏÒÓÚÜàçèéíïòóúü', 'cad': 'ABCDEHIKMNOPSTUWYabcdehikmnopstuwyÀÁÈÉÌÍÒÓÙÚàáèéìíòóùúʼˀː', 'cch': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvwyzʼ̱ḴḵṈṉ', 'ccp': '𑄀𑄁𑄂𑄃𑄄𑄅𑄆𑄇𑄈𑄉𑄊𑄋𑄌𑄍𑄎𑄏𑄐𑄑𑄒𑄓𑄔𑄕𑄖𑄗𑄘𑄙𑄚𑄛𑄜𑄝𑄞𑄟𑄠𑄡𑄢𑄣𑄤𑄥𑄦𑄧𑄨𑄩𑄪𑄫𑄬𑄭𑄮𑄯𑄰𑄱𑄲𑄳𑄴', 'ce': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёӀӏ', 'ceb': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdeghiklmnoprstuwy', 'cgg': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'cho': 'ABCEFHIKLMNOPSTUVWYZabcefhiklmnopstuvwyƲʋ̱', 'chr': 'ᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿᏀᏁᏂᏃᏄᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯᏰᏱᏲᏳᏴᏸᏹᏺᏻᏼꭰꭱꭲꭳꭴꭵꭶꭷꭸꭹꭺꭻꭼꭽꭾꭿꮀꮁꮂꮃꮄꮅꮆꮇꮈꮉꮊꮋꮌꮍꮎꮏꮐꮑꮒꮓꮔꮕꮖꮗꮘꮙꮚꮛꮜꮝꮞꮟꮠꮡꮢꮣꮤꮥꮦꮧꮨꮩꮪꮫꮬꮭꮮꮯꮰꮱꮲꮳꮴꮵꮶꮷꮸꮹꮺꮻꮼꮽꮾꮿ', 'cic': 'ABCDEFGHIKLMNOPSTVWYabcfghiklmnopstwyʼ̱', 'ckb': 'ئابتجحخدرزسشعغفقلمنهوپچڕژڤکگڵۆیێە', 'co': 'ABCDEFGHIJLMNOPQRSTUVZabcdefghijlmnopqrstuvzÀÈÌÏÒÙÜàèìïòùü', 'cs': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÉÍÓÚÝáéíóúýČčĎďĚěŇňŘřŠšŤťŮůŽž', 'csw': 'ᐁᐃᐄᐅᐆᐊᐋᐍᐏᐑᐓᐕᐘᐚᐟᐠᐢᐣᐤᐦᐨᐩᐯᐱᐲᐳᐴᐸᐹᐻᐽᐿᑁᑃᑅᑇᑊᑌᑎᑏᑐᑑᑕᑖᑘᑚᑜᑞᑠᑢᑤᑫᑭᑮᑯᑰᑲᑳᑵᑷᑹᑻᑽᑿᒁᒉᒋᒌᒍᒎᒐᒑᒓᒕᒗᒙᒛᒝᒟᒣᒥᒦᒧᒨᒪᒫᒭᒯᒱᒳᒵᒷᒹᒼᓀᓂᓃᓄᓅᓇᓈᓊᓌᓎᓭᓯᓰᓱᓲᓴᓵᓷᓹᓻᓽᓿᔁᔃᔦᔨᔩᔪᔫᔭᔮᔰᔲᔴᔶᔸᔺᔼ', 'cu': 'ЄЅІЇАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЮабвгдежзийклмнопрстуфхцчшщъыьюєѕіїѠѡѢѣѦѧѪѫѮѯѰѱѲѳѴѵѶѷѺѻѼѽѾѿ҂҃҇ⷠⷡⷢⷣⷤⷥⷦⷧⷨⷩⷪⷬⷭⷯⷱⷴⸯꙀꙁꙊꙋꙌꙍꙖꙗ꙽ꙿ', 'cv': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёҪҫӐӑӖӗӲӳ', 'cy': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijlmnoprstuwyÀÁÂÄÈÉÊËÌÍÎÏÒÓÔÖÙÚÛÜÝàáâäèéêëìíîïòóôöùúûüýÿŴŵŶŷŸẀẁẂẃẄẅỲỳ', 'da': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÅÆØåæø', 'dav': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'de': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÖÜßäöü', 'dje': 'ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuwxyzÃÕãõŊŋŠšŽžƝɲẼẽ', 'doi': 'ँंःअआइईउऊऋऌएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसह़ऽािीुूृॄेैोौ्ॐ॒॑ॠॡॢॣ', 'dsb': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÓóĆćČčĚ죳ŃńŔশŠšŹźŽž', 'dua': 'ABCDEFGIJKLMNOPRSTUWYabcdefgijklmnoprstuwyÁÉÍÓÚáéíóúŊŋŪūƁƆƊƐɓɔɗɛ́', 'dv': 'ހށނރބޅކއވމފދތލގޏސޑޒޓޔޕޖޗަާިީުޫެޭޮޯް', 'dyo': 'ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxyÁÉÍÑÓÚáéíñóúŊŋ', 'dz': 'ཀཁགངཅཆཇཉཏཐདནཔཕབམཙཚཛཝཞཟའཡརལཤསཧཨིེོུྐྑྒྔྗྙྟྠྡྣྤྥྦྨྩྪྫྭྱྲླྵྶྷ', 'ebu': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzĨĩŨũ', 'ee': 'ABDEFGHIKLMNOPRSTUVWXYZabdefghiklmnoprstuvwxyzÀÁÃÈÉÌÍÒÓÕÙÚàáãèéìíòóõùúĨĩŊŋŨũƆƉƐƑƒƔƲɔɖɛɣʋ̀́̃Ẽẽ', 'el': '́̈ΆΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ', 'en': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'eo': 'ABCDEFGHIJKLMNOPRSTUVZabcdefghijklmnoprstuvzĈĉĜĝĤĥĴĵŜŝŬŭ', 'es': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÉÍÑÓÚÜáéíñóúü', 'et': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÕÖÜäõöüŠšŽž', 'eu': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÇÑçñ', 'ewo': 'ABDEFGHIKLMNOPRSTUVWYZabdefghiklmnoprstuvwyzÀÁÂÈÉÊÌÍÎÒÓÔÙÚÛàáâèéêìíîòóôùúûĚěŃńŊŋƆƏƐǍǎǏǐǑǒǓǔǸǹɔəɛ̀́̂̌', 'fa': 'ءآأؤئابةتثجحخدذرزسشصضطظعغفقلمنهؤًٌٍّپچژکگی', 'ff': 'ABCDEFGHIJKLMNOPRSTUWYabcdefghijklmnoprstuwyÑñŊŋƁƊƳƴɓɗ', 'fi': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÅÖäåöŠšŽž', 'fil': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÑñ', 'fo': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghijklmnoprstuvyÁÆÍÐÓØÚÝáæíðóøúý', 'fr': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÂÆÇÈÉÊËÎÏÔÙÛÜàâæçèéêëîïôùûüÿŒœŸ', 'frr': 'ABCDEFGHIJKLMNOPRSTUWabcdefghijklmnoprstuwÄÅÖÜäåöüĀāĐđĒē', 'fur': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÂÇÈÊÌÎÒÔÙÛàâçèêìîòôùû', 'fy': 'ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghijklmnoprstuvwyzÀÁÂÄÈÉÊËÍÏÓÔÖÚÛÜÝàáâäèéêëíïóôöúûüý́', 'ga': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghilmnoprstuÁÉÍÓÚáéíóú', 'gaa': 'ABDEFGHIJKLMNOPQRSTUVWYZabdefghijklmnopqrstuvwyzŊŋƆƐɔɛ', 'gd': 'ABCDEFGHILMNOPRSTUabcdefghilmnoprstuÀÈÌÒÙàèìòù', 'gez': 'ሀሁሂሃሄህሆለሉሊላሌልሎሐሑሒሓሔሕሖመሙሚማሜምሞሠሡሢሣሤሥሦረሩሪራሬርሮሰሱሲሳሴስሶቀቁቂቃቄቅቆቈቊቋቌቍበቡቢባቤብቦተቱቲታቴትቶኀኁኂኃኄኅኆኈኊኋኌኍነኑኒናኔንኖአኡኢኣኤእኦከኩኪካኬክኮኰኲኳኴኵወዉዊዋዌውዎዐዑዒዓዔዕዖዘዙዚዛዜዝዞየዩዪያዬይዮደዱዲዳዴድዶገጉጊጋጌግጎጐጒጓጔጕጠጡጢጣጤጥጦጰጱጲጳጴጵጶጸጹጺጻጼጽጾፀፁፂፃፄፅፆፈፉፊፋፌፍፎፐፑፒፓፔፕፖ፟᎐᎑᎒᎓᎔᎕᎖᎗᎘᎙', 'gl': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÉÍÏÑÓÚÜáéíïñóúü', 'gn': 'ABCDEGHIJKLMNOPRSTUVYabcdeghijklmnoprstuvyÃÑÕãñõĨĩŨũʼ̃ẼẽỸỹ', 'gsw': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÖÜäöü', 'gu': 'ઁંઃઅઆઇઈઉઊઋઍએઐઑઓઔકખગઘઙચછજઝઞટઠડઢણતથદધનપફબભમયરલળવશષસહ઼ઽાિીુૂૃૄૅેૈૉોૌ્ૐૠ', 'guz': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'gv': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÇç', 'ha': 'ABCDEFGHIJKLMNORSTUWYZabcdefghijklmnorstuwyzƁƊƘƙƳƴɓɗʼ', 'haw': 'ABCDEFGHIJKLMNOPQRSTUVWXYZaehiklmnopuwĀāĒēĪīŌōŪūʻ', 'he': 'אבגדהוזחטיךכלםמןנסעףפץצקרשת', 'hi': 'ँंःअआइईउऊऋऌऍएऐऑओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसह़ऽािीुूृॅेैॉोौ्ॐ', 'hnj': '𞄀𞄁𞄂𞄃𞄄𞄅𞄆𞄇𞄈𞄉𞄊𞄋𞄌𞄍𞄎𞄏𞄐𞄑𞄒𞄓𞄔𞄕𞄖𞄗𞄘𞄙𞄚𞄛𞄜𞄝𞄞𞄟𞄠𞄡𞄢𞄣𞄤𞄥𞄦𞄧𞄨𞄩𞄪𞄫𞄬𞄰𞄱𞄲𞄳𞄴𞄵𞄶𞄼𞄽𞅎𞅏', 'hr': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvzĆćČčĐ𩹮ž', 'hsb': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÓóĆćČčĚ죳ŃńŘřŠšŹźŽž', 'hu': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvyzÁÉÍÓÖÚÜáéíóöúüŐőŰű', 'hy': 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆ', 'ia': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'id': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'ie': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÉÍÓÚáéíóú', 'ig': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvwyzṄṅẸẹỊịỌọỤụ', 'io': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'is': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghijklmnoprstuvxyÁÆÉÍÐÓÖÚÝÞáæéíðóöúýþ', 'it': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÈÉÌÒÓÙàèéìòóù', 'iu': 'ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑᒡᒥᒦᒧᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓕᓖᓗᓘᓚᓛᓪᓯᓰᓱᓲᓴᓵᔅᔨᔩᔪᔫᔭᔮᔾᕆᕇᕈᕉᕋᕌᕐᕕᕖᕗᕘᕙᕚᕝᕿᖀᖁᖂᖃᖅᖏᖑᖒᖓᖔᖕᖖᖠᖡᖢᖣᖤᖥᖦᙱᙲᙳᙴᙵᙶ', 'jbo': 'ABCDEFGHIJKLMNOPRSTUVXYZabcdefghijklmnoprstuvxyz', 'jgo': 'ABCDFGHIJKLMNPSTUVWYZabcdfghijklmnpstuvwyzÁÂÍÎÚÛáâíîúûŃńŊŋƆƐǍǎǏǐǓǔǸǹɄɔɛʉ̀́̂̄̈̌ḾḿẄẅꞋꞌ', 'jmc': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'jv': 'ABCDEGHIJKLMNOPRSTUWYabcdeghijklmnoprstuwyÂÅÈÉÊÌÒÙâåèéêìòù', 'ka': 'აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᲤᲥᲦᲧᲨᲩᲪᲫᲬᲭᲮᲯᲰ', 'kaa': 'ЁЎАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёўҒғҚқҢңҮүҲҳӘәӨө', 'kab': 'ABCDEFGHIJKLMNPQRSTUWXYZabcdefghijklmnpqrstuwxyzČčƐƔǦǧɛɣḌḍḤḥṚṛṢṣṬṭẒẓ', 'kaj': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'kam': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwyzĨĩŨũ', 'kcg': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvwyẕ', 'kde': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'kea': 'ABDEFGHIJKLMNOPRSTUVXYZabdefghijklmnoprstuvxyzÑñ', 'ken': 'ABCDEFGHIJKMNOPRSTUWYabcdefghijkmnoprstuwyÀÁÈÉÒÓÙÚàáèéòóùúĚěŊŋƆƐƗǍǎǑǒǓǔɄɔɛɨʉ̀́̌', 'kgp': 'AEFGHIJKMNOPRSTUVYaefghijkmnoprstuvyÁÃÉÓáãéóĨĩŨũẼẽỸỹ', 'khq': 'ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuwxyzÃÕãõŊŋŠšŽžƝɲẼẽ', 'ki': 'ABCDEGHIJKMNORTUWYabcdeghijkmnortuwyĨĩŨũ', 'kk': 'ЁІАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёіҒғҚқҢңҮүҰұҺһӘәӨө', 'kkj': 'ABCDEFGHIJKLMNOPRSTUVWYabcdefghijklmnoprstuvwyÀÁÂÈÉÊÌÍÎÒÓÔÙÚÛàáâèéêìíîòóôùúûŊŋƁƆƊƐɓɔɗɛ̧̀́̂', 'kl': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÅÆØåæø', 'kln': 'ABCDEGHIJKLMNOPRSTUWYabcdeghijklmnoprstuwy', 'km': 'កខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវសហឡអឥឦឧឩឪឫឬឭឮឯឰឱឲឳាិីឹឺុូួើឿៀេែៃោៅំះៈ៉៊់៍័្', 'kn': 'ಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹ಼ಽಾಿೀುೂೃೄೆೇೈೊೋೌ್ೕೖೞೠೡ೦೧೨೩೪೫೬೭೮೯', 'kok': 'ँंःअआइईउऊऋऌऍएऐऑओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसह़ऽािीुूृॅेैॉोौ्ॐ०१२३४५६७८९', 'kpe': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghijklmnoptuvwyzĜĝŊŋƁƆƏƐƔƝɓɔəɛɣɲ', 'ks': 'ؠءآأؤابتثجحخدذرزسشصضطظعغفقلمنوٲٹپچڈڑژکگںھہۄۆیے', 'ksb': 'ABCDEFGHIJKLMNOPSTUVWYZabcdefghijklmnopstuvwyz', 'ksf': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyzÁÉÍÓÚáéíóúŊŋƆƎƐǝɔɛ́', 'ksh': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÅÆËÖÜßäåæëöüĖėŒœŮů', 'ku': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÇÊÎÛçêîûŞş', 'kw': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'kxv': 'ABCDEGHIJKLMNOPRSTUVYabcdeghijklmnoprstuvyÑñĀāĒēĪīŌōŪūḌḍḶḷṄṅṆṇṚṛṬṭ', 'ky': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабгдежзийклмнопрстухчшъыэюяёҢңҮүӨө', 'la': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'lag': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÉÍÓÚáéíóúƗɄɨʉ', 'lb': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÉËäéë', 'lg': 'ABCDEFGIJKLMNOPRSTUVWYZabcdefgijklmnoprstuvwyzŊŋ', 'lij': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÂÄÆÇÈÉÊËÌÎÏÑÒÓÔÖÙÛÜàâäæçèéêëìîïñòóôöùûü', 'lkt': 'ABEGHIKLMNOPSTUWYZabeghiklmnopstuwyzÁÉÍÓÚáéíóúČčŊŋŠšŽžǦǧȞȟʼ', 'lmo': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'ln': 'ABCDEFGHIKLMNOPRSTUVWYZabcdefghiklmnoprstuvwyzÁÂÉÊÍÎÓÔÚáâéêíîóôúĚěƆƐǍǎǏǐǑǒɔɛ́̂̌', 'lo': 'ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮຯະັາຳິີຶືຸູົຼຽເແໂໃໄໆ່້໊໋໌ໍໜໝ', 'lrc': 'آأؤئابتثجحخدذرزسشصضطظعغؽفقلمنوٙٛپچژڤکگھۉۊیە', 'lt': 'ABCDEFGHIJKLMNOPRSTUVYZabcdefghijklmnoprstuvyzĄąČčĖėĘęĮįŠšŪūŲųŽž', 'ltg': 'ABCDEFGHIJKLMNOPRSTUVYZabcdefghijklmnoprstuvyzĀāČčĒēĢģĪīĶķĻļŅņŌōŠšŪūŽž', 'lu': 'ABCDEFGHIJKLMNOPQSTUVWYZabcdefghijklmnopqstuvwyzÀÁÈÉÌÍÒÓÙÚàáèéìíòóùúƆƐɔɛ̀́', 'luo': 'ABCDEFGHIJKLMNOPRSTUVWYabcdefghijklmnoprstuvwy', 'luy': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'lv': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvzĀāČčĒēĢģĪīĶķĻļŅņŠšŪūŽž', 'mai': 'ंःअआइईउऊऋऌएऐओऔकखगघचछजझञटठडढणतथदधनपफबभमयरलवशषसह़ािीुूेैोौ्ॡ', 'mas': 'ABCDEGHIJKLMNOPRSTUWYabcdeghijklmnoprstuwyÀÁÂÈÉÊÌÍÎÒÓÔÙÚÛàáâèéêìíîòóôùúûĀāĒēĪīŊŋŌōŪūƆƐƗɄɔɛɨʉ́', 'mdf': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё', 'mer': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzĨĩŨũ', 'mfe': 'ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghijklmnoprstuvwxyz', 'mg': 'ABDEFGHIJKLMNOPRSTVYZabdefghijklmnoprstvyzÀÂÈÉÊËÌÎÏÑÔàâèéêëìîïñô', 'mgh': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'mgo': 'ABCDEFGHIJKMNOPRSTUWYZabcdefghijkmnoprstuwyzÀÈÌÒÙàèìòùŊŋƆƏɔəʼ̀', 'mi': 'AEGHIKMNOPRTUWaeghikmnoprtuwĀāĒēĪīŌōŪū', 'mic': 'AEIJKLMNOPQSTUWYaeijklmnopqstuwyÁÉÓÚáéóúƗɨʼ', 'mk': 'ЃЅЈЉЊЌЏАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШабвгдежзиклмнопрстуфхцчшѓѕјљњќџ', 'ml': 'ംഅആഇഈഉഊഋഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരറലളഴവശഷസഹാിീുൂൃെേൈൊോൌ്ൗൺൻർൽൾ', 'mn': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёҮүӨө', 'mni': 'ঁংঃঅআইঈউঊঋএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ািীুূৃেৈোৌ্ৱ', 'moh': ':AEHIKNORSTWY\\aehiknorstwyÀÁÈÉÌÍÒÓàáèéìíòóʼ', 'mr': 'ँंःअआइईउऊऋऌऍएऐऑओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरऱलळवशषसह़ऽािीुूृॅेैॉोौ्ॐ\u200d', 'ms': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'mt': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghijklmnopqrstuvwxzÀÈÌÒÙàèìòùĊċĠġĦħŻż', 'mua': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyzÃËÕãëõĨĩŊŋƁƊƎǝɓɗṼṽ', 'mus': 'ACEFHIKLMNOPRSTUVWYacefhiklmnoprstuvwyĒēʼ', 'my': 'ကခဂဃငစဆဇဈဉညဋဌဍဎဏတထဒဓနပဖဗဘမယရလဝသဟဠအဣဤဥဦဧဩဪါာိီုူေဲံ့း္်ျြွှဿ၏', 'myv': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё', 'mzn': 'ءآأؤئابةتثجحخدذرزسشصضطظعغفقلمنهؤًٌٍّپچژکگی', 'naq': 'ABCDEFGHIKMNOPQRSTUWXYZabcdefghikmnopqrstuwxyzÂÎÔÛâîôûǀǁǂǃ', 'nb': '', 'nd': 'ABCDEFGHIJKLMNOPQSTUVWXYZabcdefghijklmnopqstuvwxyz', 'nds': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÅÖÜäåöüẞ', 'ne': 'ँंःअआइईउऊऋऌऍएऐऑओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसह़ऽािीुूृॅेैॉोौ्ॐ', 'nl': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÄÉËÍÏÓÖÚÜáäéëíïóöúǘ', 'nmg': 'ABCDEFGHIJKLMNOPRSTUVWYabcdefghijklmnoprstuvwyÁÂÄÉÊÍÎÏÓÔÖÚÛáâäéêíîïóôöúûĀāĒēĚěĪīŃńŊŋŌōŔŕŪūƁƆƎƐǍǎǏǐǑǒǓǔǝɓɔɛ́̂̄̌', 'nn': '↑', 'nnh': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnopstuvwyzÀÁÂÈÉÊÌÍÒÓÔÙÚÛàáâèéêìíòóôùúûÿĚěŃńŊŋŸƆƐǍǎǑǒǓǔɄɔɛʉʼ̀́̂̌ḾḿẄẅ', 'no': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÅÆÉÒÓÔØàåæéòóôø', 'nqo': 'ߊߋߌߍߎߏߐߑߒߓߔߕߖߗߘߙߚߛߜߝߞߟߠߡߢߣߤߥߦߧ߲߫߬߭߮߯߰߱߳ߴߵ', 'nr': 'ABCDEFGHIJKLMNOPQSTUVWXYZabcdefghijklmnopqstuvwxyz', 'nso': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghijklmnoprstuwxyÊÔêôŠš', 'nus': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄËÏÖäëïöŊŋƆƐƔɔɛɣ̱̈', 'nv': 'ABCDEGHIJKLMNOSTWXYZabcdeghijklmnostwxyzÁÉÍÓáéíóĄąĘęĮįŁłǪǫ́’', 'ny': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuwyzŴŵ', 'nyn': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'oc': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÇÈÉÍÏÒÓÚÜàáçèéíïòóúü', 'om': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'or': 'ଁଂଃଅଆଇଈଉଊଋଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହ଼ାିୀୁୂୃେୈୋୌ୍ୟୱ', 'os': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёӔӕ', 'osa': '́̄̋͘𐒰𐒱𐒲𐒳𐒴𐒵𐒶𐒷𐒸𐒹𐒺𐒻𐒼𐒽𐒾𐒿𐓀𐓁𐓂𐓃𐓄𐓅𐓆𐓇𐓈𐓉𐓊𐓋𐓌𐓍𐓎𐓏𐓐𐓑𐓒𐓓𐓘𐓙𐓚𐓛𐓜𐓝𐓞𐓟𐓠𐓡𐓢𐓣𐓤𐓥𐓦𐓧𐓨𐓩𐓪𐓫𐓬𐓭𐓮𐓯𐓰𐓱𐓲𐓳𐓴𐓵𐓶𐓷𐓸𐓹𐓺𐓻', 'pa': 'ਅਆਇਈਉਊਏਐਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਵਸਹ਼ਾਿੀੁੂੇੈੋੌ੍ੜ੦੧੨੩੪੫੬੭੮੯ੰੱੲੳੴ', 'pap': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÈÑÒÙÜèñòùü', 'pcm': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyzÁÉÍÓÚáéíóú́ẸẹỌọ', 'pis': 'ABDEFGHIJKLMNOPRSTUVWYabdefghijklmnoprstuvwy', 'pl': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuwyzÓóĄąĆćĘꣳŃńŚśŹźŻż', 'prg': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzĀāĒēĢģĪīĶķŅņŌōŖŗŠšŪūŽžȚțḐḑ', 'ps': 'ءآأؤئابةتثجحخدذرزسشصضطظعغفقلمنهوئًٌٍَُِّْٰټپځڅچډړږژښکګگڼیۍې', 'pt': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÇÉÊÍÒÓÔÕÚàáâãçéêíòóôõú', 'qu': 'ACHIKLMNPQSTUWYachiklmnpqstuwyÑñʼ', 'quc': 'ABCEHIJKLMNOPQRSTUVWXYZabcehijklmnopqrstuvwxyzÄäʼ', 'raj': 'ँंःअकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसहािीुूृॅेैोौ्', 'rhg': '𐴀𐴁𐴂𐴃𐴄𐴅𐴆𐴇𐴈𐴉𐴊𐴋𐴌𐴍𐴎𐴏𐴐𐴑𐴒𐴓𐴔𐴕𐴖𐴗𐴘𐴙𐴚𐴛𐴝𐴞𐴟𐴠𐴡𐴢𐴣𐴤𐴥𐴦𐴧', 'rif': 'ABCDEFGHIJKLMNPQRSTUWXYZabcdefghijklmnpqrstuwxyzƐƔɛɣḌḍḤḥṢṣṬṭẒẓ', 'rm': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÈÉÌÒÙàèéìòù', 'rn': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'ro': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÂÎâîĂăȘșȚț', 'rof': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'ru': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё', 'rw': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'rwk': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'sa': 'ँंःअआइईउऊऋऌएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसह़ऽािीुूृॄेैोौ्ॐ॒॑ॠॡॢॣ', 'sah': 'АБГДИЙКЛМНОПРСТУХЧЫЬЭабгдийклмнопрстухчыьэҔҕҤҥҮүҺһӨө', 'saq': 'ABCDEGHIJKLMNOPRSTUVWYabcdeghijklmnoprstuvwy', 'sat': 'ᱚᱛᱜᱝᱞᱟᱠᱡᱢᱣᱤᱥᱦᱧᱨᱩᱪᱫᱬᱭᱮᱯᱰᱱᱲᱳᱴᱵᱶᱷᱸᱹᱺᱻᱼᱽ', 'sbp': 'ABCDEFGHIJKLMNOPSTUVWYabcdefghijklmnopstuvwy', 'sc': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijlmnoprstuvzÀÈÌÒÙàèìòù', 'scn': 'ABCDEFGHIJLMNOPQRSTUVZabcdefghijlmnopqrstuvzÀÂÈÊÍÎÒÔÚÛàâèêíîòôúûḌḍ', 'sd': 'ءآابتثجحخدذرزسشصضطظعغفقلمنهويٺٻٽپٿڀڃڄچڇڊڌڍڏڙڦکڪگڱڳڻھ', 'sdh': 'ئابتجحخدرزسشعغفقلمنوپچڕژڤکگڵھۆۊیێە', 'se': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvzÁÄÅÆÉÖØáČčĐđŊŋŠšŦŧŽž', 'seh': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÇÉÊÍÒÓÔÕÚàáâãçéêíòóôõú', 'ses': 'ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuwxyzÃÕãõŊŋŠšŽžƝɲẼẽ', 'sg': 'ABDEFGHIJKLMNOPRSTUVWYZabdefghijklmnoprstuvwyzÂÄÊËÎÏÔÖÙÛÜâäêëîïôöùûü', 'shi': 'ⴰⴱⴳⴷⴹⴻⴼⴽⵀⵃⵄⵅⵇⵉⵊⵍⵎⵏⵓⵔⵕⵖⵙⵚⵛⵜⵟⵡⵢⵣⵥⵯ', 'shn': 'ငတထပမယရလဝသဢိီုူေး်ျြွၵၶၷၸၺၻၼၽၾၿႀႁႂႃႄႇႈႉႊ႞႟\u200bꧠꧡꧢꧣꧤꧥꩡꩦꩧꩨꩩꩮ', 'si': 'ංඃඅආඇඈඉඊඋඌඍඑඒඓඔඕඖකඛගඝඞඟචඡජඣඤඥටඨඩඪණඬතථදධනඳපඵබභමඹයරලවශෂසහළෆ්ාැෑිීුූෘෙේෛොෝෞෟෲ', 'sid': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'sk': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÄÉÍÓÔÚÝáäéíóôúýČčĎďĹ弾ŇňŔ੹ŤťŽž', 'sl': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvzĆČčĐŠšŽž', 'sma': 'ABDEFGHIJKLMNOPRSTUVYabdefghijklmnoprstuvyÄÅÖäåö', 'smj': 'ABDEFGHIJKLMNOPRSTUVabdefghijklmnoprstuvÁÄÅáäåŃń', 'smn': 'ABCDEFGHIJKLMNOPRSTUVYZabcdefghijklmnoprstuvyzÁÂÄáâäČčĐđŊŋŠšŽž', 'sms': 'ABCDEFGHIJKLMNOPRSTUVZabcdefghijklmnoprstuvzÂÄÅÕâäåõČčĐđŊŋŠšŽžƷǤǥǦǧǨǩǮǯʒ', 'sn': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'so': 'BCDFGHJKLMNQRSTWXYbcdfghjklmnqrstwxy', 'sq': 'ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzÇËçë', 'sr': 'ЂЈЉЊЋЏАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШабвгдежзиклмнопрстуфхцчшђјљњћџ', 'ss': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'ssy': 'ABCDEFGHIKLMNOQRSTUWXYabcdefghiklmnoqrstuwxy', 'st': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghijklmnopqrstuwy', 'su': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÉé', 'sv': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÄÅÉÖàäåéö', 'sw': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'syr': '܀܁܂܃܄܅܆܇܈܉܊܋܌܍ܐܑܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠܡܢܣܤܥܦܧܨܩܪܫܬܱܴܷܸܹܻܼܾ݂݄݆݈ܰܲܳܵܶܺܽܿ݀݁݃݅݇݉݊', 'szl': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuwyzÃÔÕãôõĆ棳ŃńŌōŎŏŚśŹźŻż', 'ta': 'ஃஅஆஇஈஉஊஎஏஐஒஓஔகஙசஜஞடணதநனபமயரறலளழவஷஸஹாிீுூெேைொோௌ்', 'te': 'ఁంఃఅఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహాిీుూృౄెేైొోౌ్ౕౖౠౡ', 'teo': 'ABCDEGHIJKLMNOPRSTUVWXYabcdeghijklmnoprstuvwxy', 'tg': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЧШЪЭЮЯабвгдежзийклмнопрстуфхчшъэюяёҒғҚқҲҳҶҷӢӣӮӯ', 'th': 'กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุูเแโใไๅๆ็่้๊๋์ํ๎', 'ti': 'ሀሁሂሃሄህሆለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮሯሰሱሲሳሴስሶሷሸሹሺሻሼሽሾሿቀቁቂቃቄቅቆቈቊቋቌቍቐቑቒቓቔቕቖቘቚቛቜቝበቡቢባቤብቦቧቨቩቪቫቬቭቮቯተቱቲታቴትቶቷቸቹቺቻቼችቾቿኀኁኂኃኄኅኆኈኊኋኌኍነኑኒናኔንኖኗኘኙኚኛኜኝኞኟአኡኢኣኤእኦኧከኩኪካኬክኮኰኲኳኴኵኸኹኺኻኼኽኾዀዂዃዄዅወዉዊዋዌውዎዐዑዒዓዔዕዖዘዙዚዛዜዝዞዟዠዡዢዣዤዥዦዧየዩዪያዬይዮደዱዲዳዴድዶዷጀጁጂጃጄጅጆጇገጉጊጋጌግጎጐጒጓጔጕጠጡጢጣጤጥጦጧጨጩጪጫጬጭጮጯጰጱጲጳጴጵጶጷጸጹጺጻጼጽጾጿፀፁፂፃፄፅፆፇፈፉፊፋፌፍፎፏፐፑፒፓፔፕፖፗ፟', 'tig': 'ሀሁሂሃሄህሆሇለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮሯሰሱሲሳሴስሶሷሸሹሺሻሼሽሾሿቀቁቂቃቄቅቆቇቈቊቋቌቍቐቑቒቓቔቕቖቘቚቛቜቝበቡቢባቤብቦቧቨቩቪቫቬቭቮቯተቱቲታቴትቶቷቸቹቺቻቼችቾቿኀኁኂኃኄኅኆኇኈኊኋኌኍነኑኒናኔንኖኗኘኙኚኛኜኝኞኟአኡኢኣኤእኦኧከኩኪካኬክኮኯኰኲኳኴኵኸኹኺኻኼኽኾዀዂዃዄዅወዉዊዋዌውዎዏዐዑዒዓዔዕዖዘዙዚዛዜዝዞዟዠዡዢዣዤዥዦዧየዩዪያዬይዮዯደዱዲዳዴድዶዷዸዹዺዻዼዽዾዿጀጁጂጃጄጅጆጇገጉጊጋጌግጎጏጐጒጓጔጕጘጙጚጛጜጝጞጟጠጡጢጣጤጥጦጧጨጩጪጫጬጭጮጯጰጱጲጳጴጵጶጷጸጹጺጻጼጽጾጿፀፁፂፃፄፅፆፇፈፉፊፋፌፍፎፏፐፑፒፓፔፕፖፗፘፙፚ፟፠፡።፣፤፥፦፧፨፲፳፴፵፶፷፸፹፺፻፼ᎀᎁᎂᎃᎄᎅᎆᎇᎈᎉᎊᎋᎌᎍᎎᎏ᎐᎑᎒᎓᎔᎕᎖᎗᎘᎙ⶀⶁⶂⶃⶄⶅⶆⶇⶈⶉⶊⶋⶌⶍⶎⶏⶐⶑⶒⶓⶔⶕⶖⶠⶡⶢⶣⶤⶥⶦⶨⶩⶪⶫⶬⶭⶮⶰⶱⶲⶳⶴⶵⶶⶸⶹⶺⶻⶼⶽⶾⷀⷁⷂⷃⷄⷅⷆⷈⷉⷊⷋⷌⷍⷎⷐⷑⷒⷓⷔⷕⷖⷘⷙⷚⷛⷜⷝⷞ', 'tk': 'ABDEFGHIJKLMNOPRSTUWYZabdefghijklmnoprstuwyzÄÇÖÜÝäçöüýŇňŞşŽž', 'tn': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghijklmnoprstuwyÊÔêô', 'to': 'AEFGHIKLMNOPSTUVaefghiklmnopstuvÁÉÍÓÚáéíóúĀāĒēĪīŌōŪūʻ', 'tok': 'AEIJKLMNOPSTUWaeijklmnopstuw', 'tpi': 'ABDEFGHIJKLMNOPRSTUWYabdefghijklmnoprstuwy', 'tr': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvyzÇÖÜçöüĞğİıŞş̇', 'trv': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdeghijklmnopqrstuwxy', 'trw': 'ءآأئابتثجحخدذرزسشصضطظعغفقلمنوٶٹپڅچڇڈڑژڙکگںھہیےݜݲ', 'ts': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'tt': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёҖҗҢңҮүҺһӘәӨө', 'twq': 'ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuwxyzÃÕãõŊŋŠšŽžƝɲẼẽ', 'tyv': 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёҢңҮүӨө', 'tzm': 'ABCDEFGHIJKLMNQRSTUWXYZabcdefghijklmnqrstuwxyzƐƔɛɣʷḌḍḤḥṚṛṢṣṬṭ', 'ug': 'ئابتجخدرزسشغفقكلمنهوىيپچژڭگھۆۇۈۋېە', 'uk': 'ʼЄІЇАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЮЯабвгдежзийклмнопрстуфхцчшщьюяєіїҐґ', 'ur': 'ءابتثجحخدذرزسشصضطظعغفقلمنوٹپچڈڑژکگھہیے', 'uz': 'ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzʻʼ', 'vai': 'ꔀꔁꔂꔃꔄꔅꔆꔇꔈꔉꔊꔋꔌꔍꔎꔏꔐꔑꔒꔓꔔꔕꔖꔗꔘꔙꔚꔛꔜꔝꔞꔟꔠꔡꔢꔣꔤꔥꔦꔧꔨꔩꔪꔫꔬꔭꔮꔯꔰꔱꔲꔳꔴꔵꔶꔷꔸꔹꔺꔻꔼꔽꔾꔿꕀꕁꕂꕃꕄꕅꕆꕇꕈꕉꕊꕋꕌꕍꕎꕏꕐꕑꕒꕓꕔꕕꕖꕗꕘꕙꕚꕛꕜꕝꕞꕟꕠꕡꕢꕣꕤꕥꕦꕧꕨꕩꕪꕫꕬꕭꕮꕯꕰꕱꕲꕳꕴꕵꕶꕷꕸꕹꕺꕻꕼꕽꕾꕿꖀꖁꖂꖃꖄꖅꖆꖇꖈꖉꖊꖋꖌꖍꖎꖏꖐꖑꖒꖓꖔꖕꖖꖗꖘꖙꖚꖛꖜꖝꖞꖟꖠꖡꖢꖣꖤꖥꖦꖧꖨꖩꖪꖫꖬꖭꖮꖯꖰꖱꖲꖳꖴꖵꖶꖷꖸꖹꖺꖻꖼꖽꖾꖿꗀꗁꗂꗃꗄꗅꗆꗇꗈꗉꗊꗋꗌꗍꗎꗏꗐꗑꗒꗓꗔꗕꗖꗗꗘꗙꗚꗛꗜꗝꗞꗟꗠꗡꗢꗣꗤꗥꗦꗧꗨꗩꗪꗫꗬꗭꗮꗯꗰꗱꗲꗳꗴꗵꗶꗷꗸꗹꗺꗻꗼꗽꗾꗿꘀꘁꘂꘃꘄꘅꘆꘇꘈꘉꘊꘋꘌꘐꘑꘒꘪꘫ', 've': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghiklmnoprstuvwxyzḒḓḼḽṄṅṊṋṰṱ', 'vec': 'ABCDEFGHIJLMNOPRSTUVXZabcdefghijlmnoprstuvxzÀÈÉÌÒÓÙàèéìòóù', 'vi': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdeghiklmnopqrstuvxyÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚÝàáâãèéêìíòóôõùúýĂăĐđĨĩŨũƠơƯưẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹ', 'vmw': 'ACEFHIJKLMNOPRSTUVWXYZacefhijklmnoprstuvwxyz', 'vo': 'ABCDEFGHIJKLMNOPRSTUVXYZabcdefghijklmnoprstuvxyzÄÖÜäöü', 'vun': 'ABCDEFGHIJKLMNOPRSTUVWYZabcdefghijklmnoprstuvwyz', 'wa': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÂÅÆÇÈÉÊËÎÏÔÙÛÜàâåæçèéêëîïôùûüÿŒœŸ', 'wae': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÃÄÉÍÓÕÖÚÜáãäéíóõöúüČ芚Ũũ', 'wal': 'ሀሁሂሃሄህሆሇለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮሯሰሱሲሳሴስሶሷሸሹሺሻሼሽሾሿቀቁቂቃቄቅቆቇቈቊቋቌቍቐቑቒቓቔቕቖቘቚቛቜቝበቡቢባቤብቦቧቨቩቪቫቬቭቮቯተቱቲታቴትቶቷቸቹቺቻቼችቾቿኀኁኂኃኄኅኆኇኈኊኋኌኍነኑኒናኔንኖኗኘኙኚኛኜኝኞኟአኡኢኣኤእኦኧከኩኪካኬክኮኯኰኲኳኴኵኸኹኺኻኼኽኾዀዂዃዄዅወዉዊዋዌውዎዏዐዑዒዓዔዕዖዘዙዚዛዜዝዞዟዠዡዢዣዤዥዦዧየዩዪያዬይዮዯደዱዲዳዴድዶዷዸዹዺዻዼዽዾዿጀጁጂጃጄጅጆጇገጉጊጋጌግጎጏጐጒጓጔጕጘጙጚጛጜጝጞጟጠጡጢጣጤጥጦጧጨጩጪጫጬጭጮጯጰጱጲጳጴጵጶጷጸጹጺጻጼጽጾጿፀፁፂፃፄፅፆፇፈፉፊፋፌፍፎፏፐፑፒፓፔፕፖፗፘፙፚ፟ᎀᎁᎂᎃᎄᎅᎆᎇᎈᎉᎊᎋᎌᎍᎎᎏ᎐᎑᎒᎓᎔᎕᎖᎗᎘᎙ⶀⶁⶂⶃⶄⶅⶆⶇⶈⶉⶊⶋⶌⶍⶎⶏⶐⶑⶒⶓⶔⶕⶖⶠⶡⶢⶣⶤⶥⶦⶨⶩⶪⶫⶬⶭⶮⶰⶱⶲⶳⶴⶵⶶⶸⶹⶺⶻⶼⶽⶾⷀⷁⷂⷃⷄⷅⷆⷈⷉⷊⷋⷌⷍⷎⷐⷑⷒⷓⷔⷕⷖⷘⷙⷚⷛⷜⷝⷞ', 'wbp': 'ADGIJKLMNPRTUWYadgijklmnprtuwy', 'wo': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgijklmnopqrstuwxyÀÉËÑÓàéëñóŊŋ', 'xh': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'xnr': 'ँंःअआइईउऊऍएऐऑओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशसह़ऽािीुूृॅेैॉोौ्ॐ\u200c\u200d', 'xog': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'yav': 'ABCDEFGHIKLMNOPSTUVWYabcdefghiklmnopstuvwyÀÁÂÈÉÌÍÎÒÓÔÙÚÛàáâèéìíîòóôùúûĀāĪīŊŋŌōŪūƆƐǍǎǑǒǓǔɔɛ̀́', 'yi': 'ִַָּֿׂאבגדהוזחטיךכלםמןנסעףפץצקרשתײ', 'yo': 'ABDEFGHIJKLMNOPRSTUWYabdefghijklmnoprstuwyÀÁÈÉÌÍÒÓÙÚàáèéìíòóùúŃńǸǹ̀́̄ḾḿṢṣẸẹỌọ', 'yrl': 'ABDEGIKMNPRSTUWXYabdegikmnprstuwxyÃãĨĩŨũẼẽ', 'za': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'zgh': 'ⴰⴱⴳⴷⴹⴻⴼⴽⵀⵃⵄⵅⵇⵉⵊⵍⵎⵏⵓⵔⵕⵖⵙⵚⵛⵜⵟⵡⵢⵣⵥⵯ', 'zu': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'}
# ^ these can be updated via https://github.com/justanotherfoundry/font-production/tree/master/import%20CLDR
existing_characters = set()
for glyph in Glyphs.font.glyphs:
if glyph.string:
existing_characters.add(glyph.string)
supported_languages = []
unsupported = []
required_characters = set()
for language, required in required_characters_fontbook.items():
if languages_population.get(language, 0) < MINIMUM_POPULATION:
continue
required = set(required)
if required.issubset(existing_characters):
supported_languages.append(language_names[language])
required_characters.update(required)
else:
missing = required - existing_characters
if len(missing) <= MAXIMUM_MISSING_CHARS and len(missing) > 0:
unsupported.append((languages_population[language], language_names[language], ''.join(missing)))
unsupported.sort(reverse = True)
for popu, name, missing in unsupported:
print('(', '{0:11,}'.format(popu), 'speakers) missing from', (name + ':').ljust(14), missing)
supported_languages.sort()
superfluous_characters = list(existing_characters - required_characters)
superfluous_characters.sort()
superfluous_characters = [s for s in superfluous_characters if s.isalpha()]
print()
print('supported:')
print(', '.join(supported_languages))
print()
print('required in supported languages:')
print(''.join(required_characters))
print()
print('not required in any supported language:')
print(''.join(superfluous_characters))