1# © 2016 and later: Unicode, Inc. and others.
2# License & terms of use: http://www.unicode.org/copyright.html#License
3#
4# File: Cyrl_Latn.txt
5# Generated from CLDR
6#
7
8# TODO: add remaining characters
9# Should add variants for Russian-English, Russian-German
10# Those can use this as a base, and then remap cases
11# like a $hat to ya or ja.
12# :: [\u0000-\u007E ʹ ʺ [:Cyrillic:] [:Latin:] [:nonspacing mark:]] ;
13### WARNING, \u0308 must be added to the generated filters, in both directions ###
14# MINIMAL FILTER
15:: [Ққ\u0308Ă-ăĔ-ĕĞ-ğĬ-ĭŎ-ŏŬ-ŭ\u0306Ѐ-џҐ-ҕҘ-ҙӁ-ӂӐ-ӟӢ-ӧӬ-ӵӸ-ӹḜ-ḝẮ-ặᾰᾸῐῘῠῨ] ;
16:: NFD (NFC) ;
17$modprime = ʹ;
18$modprime2 = ʺ;
19$grave = \u0300;
20$acute = \u0301;
21$hat = \u0302;
22$breve = \u0306 ;
23$dot = \u0307 ;
24$caron = \u030C ;
25$comma = \u0326 ;
26$under = \u0331 ;
27$descender = ˌ;
28# move up so not masked
29я ↔ a  $hat ; # CYRILLIC SMALL LETTER YA
30Я ↔  A $hat ; # CYRILLIC CAPITAL LETTER YA
31ч ↔ c $caron ; # CYRILLIC SMALL LETTER CHE
32Ч ↔ C $caron; # CYRILLIC CAPITAL LETTER CHE
33# ҷ ↔ XXX ; # CYRILLIC SMALL LETTER CHE WITH DESCENDER
34# Ҷ ↔ XXX ; # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
35# ӌ ↔ XXX ; # CYRILLIC SMALL LETTER KHAKASSIAN CHE
36# Ӌ ↔ XXX ; # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
37# ҹ ↔ XXX ; # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
38# Ҹ ↔ XXX ; # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
39э ↔ e $acute; # CYRILLIC SMALL LETTER E
40Э ↔ E $acute; # CYRILLIC CAPITAL LETTER E
41є ↔ e $hat; # CYRILLIC SMALL LETTER UKRAINIAN IE
42Є ↔ E $hat; # CYRILLIC CAPITAL LETTER UKRAINIAN IE
43ш ↔ s $caron ; # CYRILLIC SMALL LETTER SHA
44Ш ↔ S $caron ; # CYRILLIC CAPITAL LETTER SHA
45щ ↔ s $hat ; # CYRILLIC SMALL LETTER SHCHA
46Щ ↔ S $hat; # CYRILLIC CAPITAL LETTER SHCHA
47ѕ ↔ z $hat ; # CYRILLIC SMALL LETTER DZE
48Ѕ ↔ Z $hat; # CYRILLIC CAPITAL LETTER DZE
49# ӡ ↔ XXX ; # CYRILLIC SMALL LETTER ABKHASIAN DZE
50# Ӡ ↔ XXX ; # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
51ю ↔ u $hat ; # CYRILLIC SMALL LETTER YU
52Ю ↔  U $hat ; # CYRILLIC CAPITAL LETTER YU
53і ↔ i $acute; # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
54І ↔ I $acute; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
55ј ↔ j $caron; # CYRILLIC SMALL LETTER JE
56Ј ↔ J $caron; # CYRILLIC CAPITAL LETTER JE
57љ ↔ l $hat ; # CYRILLIC SMALL LETTER LJE
58Љ ↔ L $hat ; # CYRILLIC CAPITAL LETTER LJE
59њ ↔ n $hat ; # CYRILLIC SMALL LETTER NJE
60Њ ↔ N $hat ; # CYRILLIC CAPITAL LETTER NJE
61ћ ↔ c $acute ; # CYRILLIC SMALL LETTER TSHE
62Ћ ↔ C $acute ; # CYRILLIC CAPITAL LETTER TSHE
63џ ↔ d $hat ; # CYRILLIC SMALL LETTER DZHE
64Џ ↔ D $hat ; # CYRILLIC CAPITAL LETTER DZHE
65# Normal order
66а ↔ a ; # CYRILLIC SMALL LETTER A
67А ↔ A ; # CYRILLIC CAPITAL LETTER A
68ә ↔  ə ; # CYRILLIC SMALL LETTER SCHWA
69Ә ↔ Ə ; # CYRILLIC CAPITAL LETTER SCHWA
70ӕ ↔ æ ; # CYRILLIC SMALL LIGATURE A IE
71Ӕ ↔ Æ ; # CYRILLIC CAPITAL LIGATURE A IE
72б ↔ b ; # CYRILLIC SMALL LETTER BE
73Б ↔ B ; # CYRILLIC CAPITAL LETTER BE
74в ↔ v ; # CYRILLIC SMALL LETTER VE
75В ↔ V ; # CYRILLIC CAPITAL LETTER VE
76ґ ↔ g $grave ; # CYRILLIC SMALL LETTER GHE WITH UPTURN
77Ґ ↔ G $grave ; # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
78ғ ↔ g $dot ; # CYRILLIC SMALL LETTER GHE WITH STROKE
79Ғ ↔ G $dot; # CYRILLIC CAPITAL LETTER GHE WITH STROKE
80ҕ ↔ g $breve; # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
81Ҕ ↔ G $breve; # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
82г ↔ g ; # CYRILLIC SMALL LETTER GHE
83Г ↔ G ; # CYRILLIC CAPITAL LETTER GHE
84д ↔ d; # CYRILLIC SMALL LETTER DE
85Д ↔ D; # CYRILLIC CAPITAL LETTER DE
86ђ ↔ đ ; # CYRILLIC SMALL LETTER DJE
87Ђ ↔ Đ ; # CYRILLIC CAPITAL LETTER DJE
88ҙ ↔ z $comma ; # CYRILLIC SMALL LETTER ZE WITH DESCENDER
89Ҙ ↔ Z $comma ; # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
90е ↔ e ; # CYRILLIC SMALL LETTER IE
91Е ↔ E; # CYRILLIC CAPITAL LETTER IE
92ж ↔ z $caron; # CYRILLIC SMALL LETTER ZHE
93Ж ↔ Z $caron; # CYRILLIC CAPITAL LETTER ZHE
94# җ ↔ XXX ; # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
95# Җ ↔ XXX ; # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
96з ↔ z ; # CYRILLIC SMALL LETTER ZE
97З ↔ Z; # CYRILLIC CAPITAL LETTER ZE
98и\u0306 ↔ j ; # CYRILLIC SMALL LETTER I
99И\u0306 ↔ J ; # CYRILLIC CAPITAL LETTER I
100и ↔ i ; # CYRILLIC SMALL LETTER I
101И ↔ I ; # CYRILLIC CAPITAL LETTER I
102қ ↔ k $descender ; # CYRILLIC SMALL LETTER KA WITH DESCENDER
103Қ ↔ K $descender ; # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
104к ↔ k ; # CYRILLIC SMALL LETTER KA
105К ↔ K; # CYRILLIC CAPITAL LETTER KA
106# ӄ ↔ XXX ; # CYRILLIC SMALL LETTER KA WITH HOOK
107# Ӄ ↔ XXX ; # CYRILLIC CAPITAL LETTER KA WITH HOOK
108# ҡ ↔ XXX ; # CYRILLIC SMALL LETTER BASHKIR KA
109# Ҡ ↔ XXX ; # CYRILLIC CAPITAL LETTER BASHKIR KA
110# ҟ ↔ XXX ; # CYRILLIC SMALL LETTER KA WITH STROKE
111# Ҟ ↔ XXX ; # CYRILLIC CAPITAL LETTER KA WITH STROKE
112# ҝ ↔ XXX ; # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
113# Ҝ ↔ XXX ; # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
114л ↔ l ; # CYRILLIC SMALL LETTER EL
115Л ↔ L; # CYRILLIC CAPITAL LETTER EL
116м ↔ m ; # CYRILLIC SMALL LETTER EM
117М ↔ M ; # CYRILLIC CAPITAL LETTER EM
118н ↔ n ; # CYRILLIC SMALL LETTER EN
119Н ↔ N; # CYRILLIC CAPITAL LETTER EN
120# ң ↔ XXX ; # CYRILLIC SMALL LETTER EN WITH DESCENDER
121# Ң ↔ XXX ; # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
122# ӈ ↔ XXX ; # CYRILLIC SMALL LETTER EN WITH HOOK
123# Ӈ ↔ XXX ; # CYRILLIC CAPITAL LETTER EN WITH HOOK
124# ҥ ↔ XXX ; # CYRILLIC SMALL LIGATURE EN GHE
125# Ҥ ↔ XXX ; # CYRILLIC CAPITAL LIGATURE EN GHE
126о ↔ o ; # CYRILLIC SMALL LETTER O
127О ↔ O ; # CYRILLIC CAPITAL LETTER O
128# ө ↔ XXX ; # CYRILLIC SMALL LETTER BARRED O
129# Ө ↔ XXX ; # CYRILLIC CAPITAL LETTER BARRED O
130п ↔ p ; # CYRILLIC SMALL LETTER PE
131П ↔ P ; # CYRILLIC CAPITAL LETTER PE
132# ҧ ↔ XXX ; # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
133# Ҧ ↔ XXX ; # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
134# ҁ ↔ XXX ; # CYRILLIC SMALL LETTER KOPPA
135# Ҁ ↔ XXX ; # CYRILLIC CAPITAL LETTER KOPPA
136р ↔ r ; # CYRILLIC SMALL LETTER ER
137Р ↔ R ; # CYRILLIC CAPITAL LETTER ER
138# ҏ ↔ XXX ; # CYRILLIC SMALL LETTER ER WITH TICK
139# Ҏ ↔ XXX ; # CYRILLIC CAPITAL LETTER ER WITH TICK
140с ↔ s ; # CYRILLIC SMALL LETTER ES
141С ↔ S ; # CYRILLIC CAPITAL LETTER ES
142# ҫ ↔ XXX ; # CYRILLIC SMALL LETTER ES WITH DESCENDER
143# Ҫ ↔ XXX ; # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
144т ↔ t ; # CYRILLIC SMALL LETTER TE
145Т ↔ T ; # CYRILLIC CAPITAL LETTER TE
146# ҭ ↔ XXX ; # CYRILLIC SMALL LETTER TE WITH DESCENDER
147# Ҭ ↔ XXX ; # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
148у ↔ u ; # CYRILLIC SMALL LETTER U
149У ↔ U ; # CYRILLIC CAPITAL LETTER U
150# ү ↔ XXX ; # CYRILLIC SMALL LETTER STRAIGHT U
151# Ү ↔ XXX ; # CYRILLIC CAPITAL LETTER STRAIGHT U
152# ұ ↔ XXX ; # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
153# Ұ ↔ XXX ; # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
154# ѹ ↔ XXX ; # CYRILLIC SMALL LETTER UK
155# Ѹ ↔ XXX ; # CYRILLIC CAPITAL LETTER UK
156ф ↔ f ; # CYRILLIC SMALL LETTER EF
157Ф ↔ F ; # CYRILLIC CAPITAL LETTER EF
158х ↔ h ; # CYRILLIC SMALL LETTER HA
159Х ↔ H; # CYRILLIC CAPITAL LETTER HA
160# ҳ ↔ XXX ; # CYRILLIC SMALL LETTER HA WITH DESCENDER
161# Ҳ ↔ XXX ; # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
162# һ ↔ XXX ; # CYRILLIC SMALL LETTER SHHA
163# Һ ↔ XXX ; # CYRILLIC CAPITAL LETTER SHHA
164# ѡ ↔ XXX ; # CYRILLIC SMALL LETTER OMEGA
165# Ѡ ↔ XXX ; # CYRILLIC CAPITAL LETTER OMEGA
166# ѿ ↔ XXX ; # CYRILLIC SMALL LETTER OT
167# Ѿ ↔ XXX ; # CYRILLIC CAPITAL LETTER OT
168# ѽ ↔ XXX ; # CYRILLIC SMALL LETTER OMEGA WITH TITLO
169# Ѽ ↔ XXX ; # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
170# ѻ ↔ XXX ; # CYRILLIC SMALL LETTER ROUND OMEGA
171# Ѻ ↔ XXX ; # CYRILLIC CAPITAL LETTER ROUND OMEGA
172ц ↔ c ; # CYRILLIC SMALL LETTER TSE
173Ц ↔ C; # CYRILLIC CAPITAL LETTER TSE
174# ҵ ↔ XXX ; # CYRILLIC SMALL LIGATURE TE TSE
175# Ҵ ↔ XXX ; # CYRILLIC CAPITAL LIGATURE TE TSE
176# ҽ ↔ XXX ; # CYRILLIC SMALL LETTER ABKHASIAN CHE
177# Ҽ ↔ XXX ; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
178# ҿ ↔ XXX ; # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
179# Ҿ ↔ XXX ; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
180Ъ ↔ $modprime2 $under ; # CYRILLIC CAPITAL LETTER HARD SIGN
181ъ ↔  $modprime2 ; # CYRILLIC SMALL LETTER HARD SIGN
182Ь ↔ $modprime $under ; # CYRILLIC CAPITAL LETTER SOFT SIGN
183ь ↔  $modprime ; # CYRILLIC SMALL LETTER SOFT SIGN
184ы ↔ y ; # CYRILLIC SMALL LETTER YERU
185Ы ↔ Y ; # CYRILLIC CAPITAL LETTER YERU
186# ҍ ↔ XXX ; # CYRILLIC SMALL LETTER SEMISOFT SIGN
187# Ҍ ↔ XXX ; # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
188# ѣ ↔ XXX ; # CYRILLIC SMALL LETTER YAT
189# Ѣ ↔ XXX ; # CYRILLIC CAPITAL LETTER YAT
190# ѥ ↔ XXX ; # CYRILLIC SMALL LETTER IOTIFIED E
191# Ѥ ↔ XXX ; # CYRILLIC CAPITAL LETTER IOTIFIED E
192# ѧ ↔ XXX ; # CYRILLIC SMALL LETTER LITTLE YUS
193# Ѧ ↔ XXX ; # CYRILLIC CAPITAL LETTER LITTLE YUS
194# ѫ ↔ XXX ; # CYRILLIC SMALL LETTER BIG YUS
195# Ѫ ↔ XXX ; # CYRILLIC CAPITAL LETTER BIG YUS
196# ѩ ↔ XXX ; # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
197# Ѩ ↔ XXX ; # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
198# ѭ ↔ XXX ; # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
199# Ѭ ↔ XXX ; # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
200# ѯ ↔ XXX ; # CYRILLIC SMALL LETTER KSI
201# Ѯ ↔ XXX ; # CYRILLIC CAPITAL LETTER KSI
202# ѱ ↔ XXX ; # CYRILLIC SMALL LETTER PSI
203# Ѱ ↔ XXX ; # CYRILLIC CAPITAL LETTER PSI
204# ѳ ↔ XXX ; # CYRILLIC SMALL LETTER FITA
205# Ѳ ↔ XXX ; # CYRILLIC CAPITAL LETTER FITA
206# ѵ ↔ XXX ; # CYRILLIC SMALL LETTER IZHITSA
207# Ѵ ↔ XXX ; # CYRILLIC CAPITAL LETTER IZHITSA
208# ҩ ↔ XXX ; # CYRILLIC SMALL LETTER ABKHASIAN HA
209# Ҩ ↔ XXX ; # CYRILLIC CAPITAL LETTER ABKHASIAN HA
210# Ӏ ↔ XXX ; # CYRILLIC LETTER PALOCHKA
211### а\u0306 ↔ XXX ; # CYRILLIC SMALL LETTER A
212### А\u0306 ↔ XXX ; # CYRILLIC CAPITAL LETTER A
213### а\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER A
214### А\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER A
215### ә\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER SCHWA
216### Ә\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER SCHWA
217### г\u0301 ↔ XXX ; # CYRILLIC SMALL LETTER GHE
218### Г\u0301 ↔ XXX ; # CYRILLIC CAPITAL LETTER GHE
219### е\u0300 ↔ XXX ; # CYRILLIC SMALL LETTER IE
220### Е\u0300 ↔ XXX ; # CYRILLIC CAPITAL LETTER IE
221### е\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER IE
222### Е\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER IE
223### е\u0306 ↔ XXX ; # CYRILLIC SMALL LETTER IE
224### Е\u0306 ↔ XXX ; # CYRILLIC CAPITAL LETTER IE
225### ж\u0306 ↔ XXX ; # CYRILLIC SMALL LETTER ZHE
226### Ж\u0306 ↔ XXX ; # CYRILLIC CAPITAL LETTER ZHE
227### ж\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER ZHE
228### Ж\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER ZHE
229### з\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER ZE
230### З\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER ZE
231### и\u0300 ↔ XXX ; # CYRILLIC SMALL LETTER I
232### И\u0300 ↔ XXX ; # CYRILLIC CAPITAL LETTER I
233### и\u0304 ↔ XXX ; # CYRILLIC SMALL LETTER I
234### И\u0304 ↔ XXX ; # CYRILLIC CAPITAL LETTER I
235### и\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER I
236### И\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER I
237### і\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
238### І\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
239### о\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER O
240### О\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER O
241### ө\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER BARRED O
242### Ө\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER BARRED O
243### к\u0301 ↔ XXX ; # CYRILLIC SMALL LETTER KA
244### К\u0301 ↔ XXX ; # CYRILLIC CAPITAL LETTER KA
245### у\u0304 ↔ XXX ; # CYRILLIC SMALL LETTER U
246### У\u0304 ↔ XXX ; # CYRILLIC CAPITAL LETTER U
247### у\u0306 ↔ XXX ; # CYRILLIC SMALL LETTER U
248### У\u0306 ↔ XXX ; # CYRILLIC CAPITAL LETTER U
249### у\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER U
250### У\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER U
251### у\u030B ↔ XXX ; # CYRILLIC SMALL LETTER U
252### У\u030B ↔ XXX ; # CYRILLIC CAPITAL LETTER U
253### ч\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER CHE
254### Ч\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER CHE
255### ы\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER YERU
256### Ы\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER YERU
257### э\u0308 ↔ XXX ; # CYRILLIC SMALL LETTER E
258### Э\u0308 ↔ XXX ; # CYRILLIC CAPITAL LETTER E
259### ѵ\u030F ↔ XXX ; # CYRILLIC SMALL LETTER IZHITSA
260### Ѵ\u030F ↔ XXX ; # CYRILLIC CAPITAL LETTER IZHITSA
261# Completeness
262$ignore = [[:Mark:]''] * ;
263| k ← q ;
264| K ← Q ;
265| u ← w ;
266| U ← W ;
267| KS ← X } $ignore [:UppercaseLetter:] ;
268| KS ← [:UppercaseLetter:] $ignore { X ;
269| Ks ← X ;
270| ks ← x ;
271:: NFC (NFD) ;
272# note: a global filter is more efficient, but MUST include all source chars!!
273# :: ([\u0000-\u007E ʹ ʺ [:Cyrillic:] [:Latin:] [:nonspacing mark:]]);
274# MINIMAL FILTER: Latin-Cyrillic
275:: ( [ˌ\u0308A-Za-zÀ-ÏÑ-ÖÙ-Ýà-ïñ-öù-ýÿ-ĥĨ-İĴ-ķĹ-ľŃ-ňŌ-őŔ-ťŨ-žƏƠ-ơƯ-ưǍ-ǜǞ-ǣǦ-ǰǴ-ǵǸ-țȞ-ȟȦ-ȳəʹ-ʺ\u0300-\u0302\u0306-\u0307\u030C\u0326\u0331\u0340-\u0341\u0344ʹ΅-ΆΈ-ΊΌΎ-ΐά-ΰό-ώϓЀЃЌ-ЎЙйѐѓќ-ўӁ-ӂӐ-ӑӖ-ӗḀ-ẙẛẠ-ỹἂ-ἅἊ-Ἅἒ-ἕἚ-Ἕἢ-ἥἪ-Ἥἲ-ἵἺ-Ἵὂ-ὅὊ-Ὅὒ-ὕὛὝὢ-ὥὪ-Ὥὰ-ώᾂ-ᾅᾊ-ᾍᾒ-ᾕᾚ-ᾝᾢ-ᾥᾪ-ᾭᾰᾲᾴᾸᾺ-ΆῂῄῈ-Ή῍-῎ῐῒ-ΐῘῚ-Ί῝-῞ῠῢ-ΰῨῪ-Ύ῭-΅ῲῴῸ-ΏK-Å] ) ;
276
277