-
Notifications
You must be signed in to change notification settings - Fork 237
/
Copy pathfamilyGSUB.fea
1336 lines (1193 loc) · 67.9 KB
/
familyGSUB.fea
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
@LETTERS_MAJUSCULE_LATIN_BASIC = [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];
@LETTERS_MAJUSCULE_LATIN_ACCENTED_ABOVE = [ Aacute Abreve Abreveacute Abrevegrave Abrevehoi Abrevetilde Acaron Acircumflex Acircumflexacute Acircumflexgrave Acircumflexhoi Acircumflextilde Adieresis Agrave Ahoi Amacron Aogonekacute Aring Atilde AEacute AEmacron Bdotaccent Cacute Ccaron Ccircumflex Cdotaccent Dcaron Ddotaccent Eacute Ebreve Ecaron Ecircumflex Ecircumflexacute Ecircumflexgrave Ecircumflexhoi Ecircumflextilde Edieresis Edotaccent Egrave Ehoi Emacron Emacronacute Eogonekacute Etilde Fdotaccent Gacute Gbreve Gcaron Gcircumflex Gdotaccent Gmacron Gtilde Hcircumflex Iacute Ibreve Icaron Icircumflex Idieresis Igrave Ihoi Imacron Iogonekacute Itilde Jcircumflex Lacute Lcaron Macute Mdotaccent Nacute Ncaron Ndotaccent Ngrave Ntilde Oacute Obreve Ocaron Ocircumflex Ocircumflexacute Ocircumflexgrave Ocircumflexhoi Ocircumflextilde Odieresis Ograve Ohoi Ohornacute Ohorngrave Ohornhoi Ohorntilde Ohungarumlaut Omacron Omacronacute Oogonekacute Otilde Pdotaccent Racute Rcaron Rdotaccent Sacute Scaron Scircumflex Sdotaccent Tcaron Tdotaccent Uacute Ubreve Ucaron Ucircumflex Udieresis Udieresisacute Udieresiscaron Udieresisgrave Udieresismacron Ugrave Uhoi Uhornacute Uhorngrave Uhornhoi Uhorntilde Uhungarumlaut Umacron Uogonekacute Uring Utilde Wacute Wcircumflex Wdieresis Wgrave Yacute Ycircumflex Ydieresis Ydotaccent Ygrave Yhoi Ytilde Zacute Zcaron Zdotaccent ];
@LETTERS_MAJUSCULE_LATIN_ACCENTED_BELOW = [ Adotbelow Blinebelow Ccedilla Ddotbelow Dlinebelow Edotbelow Gcommaaccent Hbrevebelow Hdotbelow Hlinebelow Idotbelow Kcommaaccent Kdotbelow Klinebelow Lcommaaccent Ldotbelow Llinebelow Mdotbelow Ncommaaccent Ndotbelow Nlinebelow Odotbelow Ohorndotbelow Rcommaaccent Rdotbelow Rlinebelow Scedilla Scommaaccent Sdotbelow Tcedilla Tcommaaccent Tdotbelow Tlinebelow Tdieresis Udotbelow Uhorndotbelow Ydotbelow Zdotbelow Zlinebelow ];
@LETTERS_MAJUSCULE_LATIN_ACCENTED_BOTH = [ Abrevedotbelow Acircumflexdotbelow Ecircumflexdotbelow Ldotbelowmacron Ocircumflexdotbelow Rdotbelowmacron ];
@LETTERS_MAJUSCULE_LATIN_ACCENTED_ALL = [ @LETTERS_MAJUSCULE_LATIN_ACCENTED_ABOVE @LETTERS_MAJUSCULE_LATIN_ACCENTED_BELOW @LETTERS_MAJUSCULE_LATIN_ACCENTED_BOTH ];
@LETTERS_MAJUSCULE_LATIN_ADDL = [Aogonek Aogonek.d AE Bstroke Dcroat Eogonek Eogonek.d Ghook Hbar Iogonek Lslash Ldot Oslash Ohorn Oogonek OE Tbar Uhorn Uogonek Eth Thorn Schwa Eng IJ];
@LETTERS_MAJUSCULE_LATIN_ALL = [@LETTERS_MAJUSCULE_LATIN_BASIC @LETTERS_MAJUSCULE_LATIN_ACCENTED_ALL @LETTERS_MAJUSCULE_LATIN_ADDL Idotaccent];
@LETTERS_MAJUSCULE_LATIN_SUPERIOR = [A.sups B.sups C.sups D.sups E.sups F.sups G.sups H.sups I.sups J.sups K.sups L.sups M.sups N.sups O.sups P.sups Q.sups R.sups S.sups T.sups U.sups V.sups W.sups X.sups Y.sups Z.sups];
@LETTERS_MINISCULE_LATIN_BASIC = [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];
@LETTERS_MINISCULE_LATIN_ACCENTED_ABOVE = [ aacute abreve abreveacute abrevegrave abrevehoi abrevetilde acaron acircumflex acircumflexacute acircumflexgrave acircumflexhoi acircumflextilde adieresis agrave ahoi amacron aogonekacute aring atilde aeacute aemacron bdotaccent cacute ccaron ccircumflex cdotaccent dcaron ddotaccent eacute ebreve ecaron ecircumflex ecircumflexacute ecircumflexgrave ecircumflexhoi ecircumflextilde edieresis edotaccent egrave ehoi emacron emacronacute eogonekacute etilde fdotaccent gacute gbreve gcaron gcircumflex gdotaccent gmacron gtilde hcircumflex iacute ibreve icaron icircumflex idieresis igrave ihoi imacron iogonekacute itilde jcircumflex lacute lcaron macute mdotaccent nacute ncaron ndotaccent ngrave ntilde oacute obreve ocaron ocircumflex ocircumflexacute ocircumflexgrave ocircumflexhoi ocircumflextilde odieresis ograve ohoi ohornacute ohorngrave ohornhoi ohorntilde ohungarumlaut omacron omacronacute oogonekacute otilde pdotaccent racute rcaron rdotaccent sacute scaron scircumflex sdotaccent tcaron tdotaccent uacute ubreve ucaron ucircumflex udieresis udieresisacute udieresiscaron udieresisgrave udieresismacron ugrave uhoi uhornacute uhorngrave uhornhoi uhorntilde uhungarumlaut umacron uogonekacute uring utilde wacute wcircumflex wdieresis wgrave yacute ycircumflex ydieresis ydotaccent ygrave yhoi ytilde zacute zcaron zdotaccent ];
@LETTERS_MINISCULE_LATIN_ACCENTED_BELOW = [ adotbelow blinebelow ccedilla ddotbelow dlinebelow edotbelow gcommaaccent hbrevebelow hdotbelow hlinebelow idotbelow kcommaaccent kdotbelow klinebelow lcommaaccent ldotbelow llinebelow mdotbelow ncommaaccent ndotbelow nlinebelow odotbelow ohorndotbelow rcommaaccent rdotbelow rlinebelow scedilla scommaaccent sdotbelow tcedilla tcommaaccent tdotbelow tlinebelow tdieresis udotbelow uhorndotbelow ydotbelow zdotbelow zlinebelow ];
@LETTERS_MINISCULE_LATIN_ACCENTED_BOTH = [ abrevedotbelow acircumflexdotbelow ecircumflexdotbelow ldotbelowmacron ocircumflexdotbelow rdotbelowmacron ];
@LETTERS_MINISCULE_LATIN_ACCENTED_ALL = [ @LETTERS_MINISCULE_LATIN_ACCENTED_ABOVE @LETTERS_MINISCULE_LATIN_ACCENTED_BELOW @LETTERS_MINISCULE_LATIN_ACCENTED_BOTH ];
@LETTERS_MINISCULE_LATIN_ADDL = [aogonek aogonek.d ae bstroke dcroat eogonek eogonek.d ghook hbar iogonek lslash ldot oslash ohorn oogonek oe tbar uhorn uogonek eth thorn schwa eng ij];
@LETTERS_MINISCULE_LATIN_SUPERIOR = [a.sups b.sups c.sups d.sups e.sups f.sups g.sups h.sups i.sups j.sups k.sups l.sups m.sups n.sups o.sups p.sups q.sups r.sups s.sups t.sups u.sups v.sups w.sups x.sups y.sups z.sups];
@LETTERS_MINISCULE_LATIN_ASCENDERS = [b d f h k l];
@LETTERS_MINISCULE_LATIN_ASCENDERS_ALL = [b d f h k l];
@LETTERS_SMALLCAP_LATIN_BASIC = [A.sc B.sc C.sc D.sc E.sc F.sc G.sc H.sc I.sc J.sc K.sc L.sc M.sc N.sc O.sc P.sc Q.sc R.sc S.sc T.sc U.sc V.sc W.sc X.sc Y.sc Z.sc];
@LETTERS_SMALLCAP_LATIN_ACCENTED_ABOVE = [ Aacute.sc Abreve.sc Abreveacute.sc Abrevegrave.sc Abrevehoi.sc Abrevetilde.sc Acaron.sc Acircumflex.sc Acircumflexacute.sc Acircumflexgrave.sc Acircumflexhoi.sc Acircumflextilde.sc Adieresis.sc Agrave.sc Ahoi.sc Amacron.sc Aogonekacute.sc Aring.sc Atilde.sc AEacute.sc AEmacron.sc Bdotaccent.sc Cacute.sc Ccaron.sc Ccircumflex.sc Cdotaccent.sc Dcaron.sc Ddotaccent.sc Eacute.sc Ebreve.sc Ecaron.sc Ecircumflex.sc Ecircumflexacute.sc Ecircumflexgrave.sc Ecircumflexhoi.sc Ecircumflextilde.sc Edieresis.sc Edotaccent.sc Egrave.sc Ehoi.sc Emacron.sc Emacronacute.sc Eogonekacute.sc Etilde.sc Fdotaccent.sc Gacute.sc Gbreve.sc Gcaron.sc Gcircumflex.sc Gdotaccent.sc Gmacron.sc Gtilde.sc Hcircumflex.sc Iacute.sc Ibreve.sc Icaron.sc Icircumflex.sc Idieresis.sc Igrave.sc Ihoi.sc Imacron.sc Iogonekacute.sc Itilde.sc Jcircumflex.sc Lacute.sc Lcaron.sc Macute.sc Mdotaccent.sc Nacute.sc Ncaron.sc Ndotaccent.sc Ngrave.sc Ntilde.sc Oacute.sc Obreve.sc Ocaron.sc Ocircumflex.sc Ocircumflexacute.sc Ocircumflexgrave.sc Ocircumflexhoi.sc Ocircumflextilde.sc Odieresis.sc Ograve.sc Ohoi.sc Ohornacute.sc Ohorngrave.sc Ohornhoi.sc Ohorntilde.sc Ohungarumlaut.sc Omacron.sc Omacronacute.sc Oogonekacute.sc Otilde.sc Pdotaccent.sc Racute.sc Rcaron.sc Rdotaccent.sc Sacute.sc Scaron.sc Scircumflex.sc Sdotaccent.sc Tcaron.sc Tdotaccent.sc Uacute.sc Ubreve.sc Ucaron.sc Ucircumflex.sc Udieresis.sc Udieresisacute.sc Udieresiscaron.sc Udieresisgrave.sc Udieresismacron.sc Ugrave.sc Uhoi.sc Uhornacute.sc Uhorngrave.sc Uhornhoi.sc Uhorntilde.sc Uhungarumlaut.sc Umacron.sc Uogonekacute.sc Uring.sc Utilde.sc Wacute.sc Wcircumflex.sc Wdieresis.sc Wgrave.sc Yacute.sc Ycircumflex.sc Ydieresis.sc Ydotaccent.sc Ygrave.sc Yhoi.sc Ytilde.sc Zacute.sc Zcaron.sc Zdotaccent.sc ];
@LETTERS_SMALLCAP_LATIN_ACCENTED_BELOW = [ Adotbelow.sc Blinebelow.sc Ccedilla.sc Ddotbelow.sc Dlinebelow.sc Edotbelow.sc Gcommaaccent.sc Hbrevebelow.sc Hdotbelow.sc Hlinebelow.sc Idotbelow.sc Kcommaaccent.sc Kdotbelow.sc Klinebelow.sc Lcommaaccent.sc Ldotbelow.sc Llinebelow.sc Mdotbelow.sc Ncommaaccent.sc Ndotbelow.sc Nlinebelow.sc Odotbelow.sc Ohorndotbelow.sc Rcommaaccent.sc Rdotbelow.sc Rlinebelow.sc Scedilla.sc Scommaaccent.sc Sdotbelow.sc Tcedilla.sc Tcommaaccent.sc Tdotbelow.sc Tlinebelow.sc Tdieresis.sc Udotbelow.sc Uhorndotbelow.sc Ydotbelow.sc Zdotbelow.sc Zlinebelow.sc ];
@LETTERS_SMALLCAP_LATIN_ACCENTED_BOTH = [ Abrevedotbelow.sc Acircumflexdotbelow.sc Ecircumflexdotbelow.sc Ldotbelowmacron.sc Ocircumflexdotbelow.sc Rdotbelowmacron.sc ];
@LETTERS_SMALLCAP_LATIN_ACCENTED_ALL = [ @LETTERS_SMALLCAP_LATIN_ACCENTED_ABOVE @LETTERS_SMALLCAP_LATIN_ACCENTED_BELOW @LETTERS_SMALLCAP_LATIN_ACCENTED_BOTH ];
@LETTERS_SMALLCAP_LATIN_ADDL = [Aogonek.sc Aogonek.sa AE.sc Bstroke.sc Dcroat.sc Eogonek.sc Eogonek.sa Ghook.sc Hbar.sc Iogonek.sc Lslash.sc Ldot.sc Oslash.sc Ohorn.sc Oogonek.sc OE.sc Tbar.sc Uhorn.sc Uogonek.sc Eth.sc Thorn.sc Schwa.sc Eng.sc IJ.sc];
@LETTERS_SMALLCAP_LATIN_ALL = [@LETTERS_SMALLCAP_LATIN_BASIC @LETTERS_SMALLCAP_LATIN_ACCENTED_ALL @LETTERS_SMALLCAP_LATIN_ADDL Idotaccent.sc];
@LETTERS_MAJUSCULE_GREEK_BASIC = [Alpha Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi Omega];
@LETTERS_MAJUSCULE_GREEK_TONOS = [Alphatonos Epsilontonos Etatonos Iotatonos Omicrontonos Upsilontonos Omegatonos];
@LETTERS_MAJUSCULE_GREEK_DIERESIS = [Iotadieresis Upsilondieresis];
@LETTERS_MAJUSCULE_GREEK_POLY = [Alphalenis Alphaasper Alphagrave Alphaacute Alphalenisgrave Alphaaspergrave Alphalenisacute Alphaasperacute Alphalenistilde Alphaaspertilde Alphabreve Alphamacron Epsilonlenis Epsilonasper Epsilongrave Epsilonacute Epsilonlenisgrave Epsilonaspergrave Epsilonlenisacute Epsilonasperacute Etalenis Etaasper Etagrave Etaacute Etalenisgrave Etaaspergrave Etalenisacute Etaasperacute Etalenistilde Etaaspertilde Iotalenis Iotaasper Iotagrave Iotaacute Iotalenisgrave Iotaaspergrave Iotalenisacute Iotaasperacute Iotalenistilde Iotaaspertilde Iotabreve Iotamacron Omicronlenis Omicronasper Omicrongrave Omicronacute Omicronlenisgrave Omicronaspergrave Omicronlenisacute Omicronasperacute Rhoasper Upsilonasper Upsilongrave Upsilonacute Upsilonaspergrave Upsilonasperacute Upsilonaspertilde Upsilonbreve Upsilonmacron Omegalenis Omegaasper Omegagrave Omegaacute Omegalenisgrave Omegaaspergrave Omegalenisacute Omegaasperacute Omegalenistilde Omegaaspertilde Alphaiotasub Alphaiotasublenis Alphaiotasubasper Alphaiotasublenisgrave Alphaiotasubaspergrave Alphaiotasublenisacute Alphaiotasubasperacute Alphaiotasublenistilde Alphaiotasubaspertilde Etaiotasub Etaiotasublenis Etaiotasubasper Etaiotasublenisgrave Etaiotasubaspergrave Etaiotasublenisacute Etaiotasubasperacute Etaiotasublenistilde Etaiotasubaspertilde Omegaiotasub Omegaiotasublenis Omegaiotasubasper Omegaiotasublenisgrave Omegaiotasubaspergrave Omegaiotasublenisacute Omegaiotasubasperacute Omegaiotasublenistilde Omegaiotasubaspertilde];
@LETTERS_MAJUSCULE_GREEK_ALL = [@LETTERS_MAJUSCULE_GREEK_BASIC @LETTERS_MAJUSCULE_GREEK_TONOS @LETTERS_MAJUSCULE_GREEK_DIERESIS @LETTERS_MAJUSCULE_GREEK_POLY];
@LETTERS_MINISCULE_GREEK_BASIC = [alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigma tau upsilon phi chi psi omega];
@LETTERS_MINISCULE_GREEK_TONOS = [alphatonos epsilontonos etatonos iotatonos omicrontonos upsilontonos omegatonos];
@LETTERS_MINISCULE_GREEK_DIERESIS = [iotadieresis upsilondieresis];
@LETTERS_MINISCULE_GREEK_DIERESISTONOS = [iotadieresistonos upsilondieresistonos];
@LETTERS_MINISCULE_GREEK_POLY = [alphalenis alphaasper alphagrave alphaacute alphalenisgrave alphaaspergrave alphalenisacute alphaasperacute alphalenistilde alphaaspertilde alphabreve alphamacron alphatilde epsilonlenis epsilonasper epsilongrave epsilonacute epsilonlenisgrave epsilonaspergrave epsilonlenisacute epsilonasperacute etalenis etaasper etagrave etaacute etalenisgrave etaaspergrave etalenisacute etaasperacute etalenistilde etaaspertilde etatilde iotalenis iotaasper iotagrave iotaacute iotalenisgrave iotaaspergrave iotalenisacute iotaasperacute iotalenistilde iotaaspertilde iotabreve iotamacron iotatilde iotadieresisgrave iotadieresisacute iotadieresistilde omicronlenis omicronasper omicrongrave omicronacute omicronlenisgrave omicronaspergrave omicronlenisacute omicronasperacute rholenis rhoasper upsilonlenis upsilonasper upsilongrave upsilonacute upsilonlenisgrave upsilonaspergrave upsilonlenisacute upsilonasperacute upsilonlenistilde upsilonaspertilde upsilontilde upsilonbreve upsilonmacron upsilondieresisgrave upsilondieresisacute upsilondieresistilde omegalenis omegaasper omegagrave omegaacute omegalenisgrave omegaaspergrave omegalenisacute omegaasperacute omegalenistilde omegaaspertilde omegatilde alphaiotasub alphaiotasublenis alphaiotasubasper alphaiotasubgrave alphaiotasubacute alphaiotasublenisgrave alphaiotasubaspergrave alphaiotasublenisacute alphaiotasubasperacute alphaiotasublenistilde alphaiotasubaspertilde alphaiotasubtilde etaiotasub etaiotasublenis etaiotasubasper etaiotasubgrave etaiotasubacute etaiotasublenisgrave etaiotasubaspergrave etaiotasublenisacute etaiotasubasperacute etaiotasublenistilde etaiotasubaspertilde etaiotasubtilde omegaiotasub omegaiotasublenis omegaiotasubasper omegaiotasubgrave omegaiotasubacute omegaiotasublenisgrave omegaiotasubaspergrave omegaiotasublenisacute omegaiotasubasperacute omegaiotasublenistilde omegaiotasubaspertilde omegaiotasubtilde];
@LETTERS_MINISCULE_GREEK_ALL = [@LETTERS_MINISCULE_GREEK_BASIC @LETTERS_MINISCULE_GREEK_TONOS @LETTERS_MINISCULE_GREEK_DIERESIS @LETTERS_MINISCULE_GREEK_DIERESISTONOS @LETTERS_MINISCULE_GREEK_POLY];
@LETTERS_SMALLCAP_GREEK_BASIC = [Alpha.sc Beta.sc Gamma.sc Delta.sc Epsilon.sc Zeta.sc Eta.sc Theta.sc Iota.sc Kappa.sc Lambda.sc Mu.sc Nu.sc Xi.sc Omicron.sc Pi.sc Rho.sc Sigma.sc Tau.sc Upsilon.sc Phi.sc Chi.sc Psi.sc Omega.sc];
@LETTERS_SMALLCAP_GREEK_NO_TONOS = [Alpha.sc Epsilon.sc Eta.sc Iota.sc Omicron.sc Upsilon.sc Omega.sc];
#@LETTERS_SMALLCAP_GREEK_TONOS = [Alphatonos.sc Epsilontonos.sc Etatonos.sc Iotatonos.sc Omicrontonos.sc Upsilontonos.sc Omegatonos.sc];
@LETTERS_SMALLCAP_GREEK_DIERESIS = [Iotadieresis.sc Upsilondieresis.sc];
@LETTERS_SMALLCAP_GREEK_ALL = [@LETTERS_SMALLCAP_GREEK_BASIC @LETTERS_SMALLCAP_GREEK_DIERESIS]; #@LETTERS_SMALLCAP_GREEK_TONOS
@LETTERS_MAJUSCULE_CYRILLIC_BASIC = [Acyr Be Ve Ghe De Ie Zhe Ze Icyr Ka El Em En Ocyr Pe Er Es Te Ucyr Ef Ha Tse Che Sha Shcha Hard Yeru Soft Ecyr Yu Ya Ieukran Dze Iukran Je Lje Nje Tshe Dzhe Yat Fita Izhitsa Gheup Ghestroke Zhedescender Zedescender Kadescender Kabashkir Endescender Esdescender Ustraight Ustraightstroke Hadescender Chedescender Shha Palochka Aie Schwacyr Obarcyr];
@LETTERS_MAJUSCULE_CYRILLIC_ACCENTED = [Ishort Iegrave Io Dje Gje Yi Kje Igravecyr Ushort Zhebreve Abrevecyr Iebreve Imacroncyr Odieresiscyr Umacroncyr Uacutedblcyr];
@LETTERS_MAJUSCULE_CYRILLIC_ALL = [@LETTERS_MAJUSCULE_CYRILLIC_BASIC @LETTERS_MAJUSCULE_CYRILLIC_ACCENTED];
@LETTERS_MINISCULE_CYRILLIC_BASIC = [acyr be ve ghe de ie zhe ze icyr ka el em en ocyr pe er es te ucyr ef ha tse che sha shcha hard yeru soft ecyr yu ya ieukran dze iukran je lje nje tshe dzhe yat fita izhitsa gheup ghestroke zhedescender zedescender kadescender kabashkir endescender esdescender ustraight ustraightstroke hadescender chedescender shha palochka aie schwacyr obarcyr];
@LETTERS_MINISCULE_CYRILLIC_ACCENTED = [ishort iegrave io dje gje yi kje igravecyr ushort zhebreve abrevecyr iebreve imacroncyr odieresiscyr umacroncyr uacutedblcyr];
@LETTERS_MINISCULE_CYRILLIC_ALL = [@LETTERS_MINISCULE_CYRILLIC_BASIC @LETTERS_MINISCULE_CYRILLIC_ACCENTED];
@LETTERS_SMALLCAP_CYRILLIC_BASIC = [Acyr.sc Be.sc Ve.sc Ghe.sc De.sc Ie.sc Zhe.sc Ze.sc Icyr.sc Ka.sc El.sc Em.sc En.sc Ocyr.sc Pe.sc Er.sc Es.sc Te.sc Ucyr.sc Ef.sc Ha.sc Tse.sc Che.sc Sha.sc Shcha.sc Hard.sc Yeru.sc Soft.sc Ecyr.sc Yu.sc Ya.sc Ieukran.sc Dze.sc Iukran.sc Je.sc Lje.sc Nje.sc Tshe.sc Dzhe.sc Yat.sc Fita.sc Izhitsa.sc Gheup.sc Ghestroke.sc Zhedescender.sc Zedescender.sc Kadescender.sc Kabashkir.sc Endescender.sc Esdescender.sc Ustraight.sc Ustraightstroke.sc Hadescender.sc Chedescender.sc Shha.sc Palochka.sc Aie.sc Schwacyr.sc Obarcyr.sc];
@LETTERS_SMALLCAP_CYRILLIC_ACCENTED = [Ishort.sc Iegrave.sc Io.sc Dje.sc Gje.sc Yi.sc Kje.sc Igravecyr.sc Ushort.sc Zhebreve.sc Abrevecyr.sc Iebreve.sc Imacroncyr.sc Odieresiscyr.sc Umacroncyr.sc Uacutedblcyr.sc];
@LETTERS_SMALLCAP_CYRILLIC_ALL = [@LETTERS_SMALLCAP_CYRILLIC_BASIC @LETTERS_SMALLCAP_CYRILLIC_ACCENTED];
@LETTERS_MAJUSCULE_ALL = [@LETTERS_MAJUSCULE_LATIN_ALL @LETTERS_MAJUSCULE_GREEK_ALL @LETTERS_MAJUSCULE_CYRILLIC_ALL];
@LETTERS_SMALLCAP_ALL = [@LETTERS_SMALLCAP_LATIN_ALL @LETTERS_SMALLCAP_GREEK_ALL @LETTERS_SMALLCAP_CYRILLIC_ALL];
@MARKS_CMB_ABOVE = [ gravecmb variacmb acutecmb tonoscmb circumflexcmb tildecmb macroncmb overlinecmb brevecmb brevecmb.cyr dotaccentcmb dieresiscmb hoicmb ringcmb hungarumlautcmb caroncmb dblgravecmb breveinvertedcmb commaturnedabovecmb aspercmb commaabovecmb leniscmb leftangleabovecmb horncmb cedillacmb ogonekcmb tildeoverlaycmb xabovecmb perispomenicmb koroniscmb dialytikatonoscmb ];
@MARKS_CMB_BELOW = [ lefttackbelowcmb righttackbelowcmb ringhalfleftbelowcmb uptackbelowcmb downtackbelowcmb plusbelowcmb minusbelowcmb dotbelowcmb dieresisbelowcmb ringbelowcmb commabelowcmb verticallinebelowcmb bridgebelowcmb caronbelowcmb brevebelowcmb breveinvertedbelowcmb tildebelowcmb macronbelowcmb ringhalfrightbelowcmb bridgeinvertedbelowcmb squarebelowcmb seagullbelowcmb iotasubscriptcmb ];
@MARKS_CMB_ALL = [ @MARKS_CMB_ABOVE @MARKS_CMB_BELOW ];
@MARKS_CMB_LC = [ gravecmb acutecmb circumflexcmb tildecmb macroncmb overlinecmb brevecmb brevecmb.cyrcap dotaccentcmb dieresiscmb hoicmb ringcmb hungarumlautcmb caroncmb dblgravecmb breveinvertedcmb cedillacmb ogonekcmb perispomenicmb ];
@MARKS_CMB_CASE = [ gravecmb.cap acutecmb.cap circumflexcmb.cap tildecmb.cap macroncmb.cap overlinecmb.cap brevecmb.cap brevecmb.cyrcap dotaccentcmb.cap dieresiscmb.cap hoicmb.cap ringcmb.cap hungarumlautcmb.cap caroncmb.cap dblgravecmb.cap breveinvertedcmb.cap cedillacmb.cap ogonekcmb.cap perispomenicmb.cap ];
@FIGURES_LINING_TABULAR = [zero one two three four five six seven eight nine];
@FIGURES_LINING_PROPORTIONAL = [zero.pnum one.pnum two.pnum three.pnum four.pnum five.pnum six.pnum seven.pnum eight.pnum nine.pnum];
@FIGURES_OLDSTYLE_PROPORTIONAL = [zero.onum one.onum two.onum three.onum four.onum five.onum six.onum seven.onum eight.onum nine.onum];
@FIGURES_OLDSTYLE_TABULAR = [zero.tnum one.tnum two.tnum three.tnum four.tnum five.tnum six.tnum seven.tnum eight.tnum nine.tnum];
@FIGURES_NUMERATOR = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr];
@FIGURES_DENOMINATOR = [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom];
@FIGURES_SUPERIOR = [zero.sups one.sups two.sups three.sups four.sups five.sups six.sups seven.sups eight.sups nine.sups];
@FIGURES_INFERIOR = [zero.subs one.subs two.subs three.subs four.subs five.subs six.subs seven.subs eight.subs nine.subs];
@FIGURES_CAP = [zero.cap one.cap two.cap three.cap four.cap five.cap six.cap seven.cap eight.cap nine.cap];
@FIGURES_SMALLCAP = [zero.sc one.sc two.sc three.sc four.sc five.sc six.sc seven.sc eight.sc nine.sc];
@PUNCTUATION_FOR_SMALLCAPS = [ampersand exclam question exclamdown questiondown parenleft parenright bracketleft bracketright braceleft braceright hyphen endash emdash quoteleft quoteright quotedblleft quotedblright quotesingle quotedbl];
@PUNCTUATION_SMALLCAPS = [ampersand.sc exclam.sc question.sc exclamdown.sc questiondown.sc parenleft.sc parenright.sc bracketleft.sc bracketright.sc braceleft.sc braceright.sc hyphen.sc endash.sc emdash.sc quoteleft.sc quoteright.sc quotedblleft.sc quotedblright.sc quotesingle.sc quotedbl.sc];
@PUNCTUATION_FOR_SMALL_FIGURE_STYLES = [parenleft parenright period comma];
@PUNCTUATION_NUMERATOR = [parenleft.numr parenright.numr period.numr comma.numr];
@PUNCTUATION_DENOMINATOR = [parenleft.dnom parenright.dnom period.dnom comma.dnom];
@PUNCTUATION_SUPERIOR = [parenleft.sups parenright.sups period.sups comma.sups];
@PUNCTUATION_INFERIOR = [parenleft.subs parenright.subs period.subs comma.subs];
@SS01_L_LC_DEFAULT = [l lacute lcaron ldot lslash lcommaaccent ldotbelow ldotbelowmacron llinebelow fl l.sups];
@SS01_L_LC_ALTERNATE = [l.a lacute.a lcaron.a ldot.a lslash.a lcommaaccent.a ldotbelow.a ldotbelowmacron.a llinebelow.a fl.a l.supa];
@SS02_A_LC_DEFAULT = [a agrave aacute acircumflex atilde adieresis amacron abreve aring acaron adotbelow ahoi acircumflexacute acircumflexgrave acircumflexhoi acircumflextilde acircumflexdotbelow abreveacute abrevegrave abrevehoi abrevetilde abrevedotbelow aogonek aogonek.d aogonekacute a.sups ordfeminine];
@SS02_A_LC_ALTERNATE = [a.a agrave.a aacute.a acircumflex.a atilde.a adieresis.a amacron.a abreve.a aring.a acaron.a adotbelow.a ahoi.a acircumflexacute.a acircumflexgrave.a acircumflexhoi.a acircumflextilde.a acircumflexdotbelow.a abreveacute.a abrevegrave.a abrevehoi.a abrevetilde.a abrevedotbelow.a aogonek.a aogonek.b aogonekacute.a a.supa ordfeminine.a];
@SS03_G_LC_DEFAULT = [g gacute gcircumflex gbreve gdotaccent gcommaaccent gcaron gmacron gtilde g.sups];
@SS03_G_LC_ALTERNATE = [g.a gacute.a gcircumflex.a gbreve.a gdotaccent.a gcommaaccent.a gcaron.a gmacron.a gtilde.a g.supa];
@SS04_I_UC_DEFAULT = [I Igrave Iacute Icircumflex Itilde Idieresis Imacron Ibreve Idotaccent Icaron Ihoi Idotbelow Iogonek Iogonekacute];
@SS04_I_UC_ALTERNATE = [I.a Igrave.a Iacute.a Icircumflex.a Itilde.a Idieresis.a Imacron.a Ibreve.a Idotaccent.a Icaron.a Ihoi.a Idotbelow.a Iogonek.a Iogonekacute.a];
#--------------------------------------
languagesystem DFLT dflt; # Default
languagesystem latn dflt; # Latin default
languagesystem latn ATH; # Athapaskan/Athabaskan
languagesystem latn AZE; # Azeri
languagesystem latn CRT; # Crimean Tatar
languagesystem latn NAV; # Navajo/Diné Bizaad
languagesystem latn NSM; # Northern Sami
languagesystem latn SKS; # Skolt Sami
languagesystem latn TRK; # Turkish
languagesystem grek dflt; # Greek default
languagesystem cyrl dflt; # Cyrillic default
languagesystem cyrl SRB; # Serbian
#--------------------------------------
feature aalt { # Access All Alternates
feature locl;
feature c2sc;
feature smcp;
feature numr;
feature dnom;
feature ordn;
feature sups;
feature subs;
feature sinf;
feature pnum;
feature onum;
feature ss05;
feature zero;
feature case;
feature ss01;
feature ss02;
feature ss03;
feature ss04;
feature salt;
} aalt;
#--------------------------------------
lookup DECOMPOSITION {
#Latin
sub Agrave by A gravecmb.cap;
sub Aacute by A acutecmb.cap;
sub Acircumflex by A circumflexcmb.cap;
sub Atilde by A tildecmb.cap;
sub Adieresis by A dieresiscmb.cap;
sub Amacron by A macroncmb.cap;
sub Abreve by A brevecmb.cap;
sub Aring by A ringcmb.cap;
sub Acaron by A caroncmb.cap;
sub Adotbelow by A dotbelowcmb;
sub Ahoi by A hoicmb.cap;
sub Acircumflexacute by A circumflexcmb.cap acutecmb.cap;
sub Acircumflexgrave by A circumflexcmb.cap gravecmb.cap;
sub Acircumflexhoi by A circumflexcmb.cap hoicmb.cap;
sub Acircumflextilde by A circumflexcmb.cap tildecmb.cap;
sub Acircumflexdotbelow by A circumflexcmb.cap dotbelowcmb;
sub Abreveacute by A brevecmb.cap acutecmb.cap;
sub Abrevegrave by A brevecmb.cap gravecmb.cap;
sub Abrevehoi by A brevecmb.cap hoicmb.cap;
sub Abrevetilde by A brevecmb.cap tildecmb.cap;
sub Abrevedotbelow by A brevecmb.cap dotbelowcmb;
sub Aogonekacute by Aogonek acutecmb.cap;
sub AEacute by AE acutecmb.cap;
sub AEmacron by AE macroncmb.cap;
sub Bdotaccent by B dotaccentcmb.cap;
sub Blinebelow by B macronbelowcmb;
sub Ccedilla by C cedillacmb.cap;
sub Cacute by C acutecmb.cap;
sub Ccircumflex by C circumflexcmb.cap;
sub Ccaron by C caroncmb.cap;
sub Cdotaccent by C dotaccentcmb.cap;
sub Dcaron by D caroncmb.cap;
sub Ddotaccent by D dotaccentcmb.cap;
sub Ddotbelow by D dotbelowcmb;
sub Dlinebelow by D macronbelowcmb;
sub Egrave by E gravecmb.cap;
sub Eacute by E acutecmb.cap;
sub Ecircumflex by E circumflexcmb.cap;
sub Ecaron by E caroncmb.cap;
sub Edieresis by E dieresiscmb.cap;
sub Emacron by E macroncmb.cap;
sub Ebreve by E brevecmb.cap;
sub Edotaccent by E dotaccentcmb.cap;
sub Edotbelow by E dotbelowcmb;
sub Ehoi by E hoicmb.cap;
sub Etilde by E tildecmb.cap;
sub Ecircumflexacute by E circumflexcmb.cap acutecmb.cap;
sub Ecircumflexgrave by E circumflexcmb.cap gravecmb.cap;
sub Ecircumflexhoi by E circumflexcmb.cap hoicmb.cap;
sub Ecircumflextilde by E circumflexcmb.cap tildecmb.cap;
sub Ecircumflexdotbelow by E circumflexcmb.cap dotbelowcmb;
sub Eogonekacute by Eogonek acutecmb.cap;
sub Emacronacute by E macroncmb.cap acutecmb.cap;
sub Fdotaccent by F dotaccentcmb.cap;
sub Gacute by G acutecmb.cap;
sub Gcircumflex by G circumflexcmb.cap;
sub Gbreve by G brevecmb.cap;
sub Gdotaccent by G dotaccentcmb.cap;
sub Gcommaaccent by G commabelowcmb;
sub Gcaron by G caroncmb.cap;
sub Gmacron by G macroncmb.cap;
sub Gtilde by G tildecmb.cap;
sub Hcircumflex by H circumflexcmb.cap;
sub Hdotbelow by H dotbelowcmb;
sub Hlinebelow by H macronbelowcmb;
sub Hbrevebelow by H brevebelowcmb;
sub Igrave by I gravecmb.cap;
sub Iacute by I acutecmb.cap;
sub Icircumflex by I circumflexcmb.cap;
sub Itilde by I tildecmb.cap;
sub Idieresis by I dieresiscmb.cap;
sub Imacron by I macroncmb.cap;
sub Icaron by I caroncmb.cap;
sub Ihoi by I hoicmb.cap;
sub Idotbelow by I dotbelowcmb;
sub Iogonekacute by Iogonek acutecmb.cap;
sub Ibreve by I brevecmb.cap;
sub Jcircumflex by J circumflexcmb.cap;
sub Kcommaaccent by K commabelowcmb;
sub Kdotbelow by K dotbelowcmb;
sub Klinebelow by K macronbelowcmb;
sub Lacute by L acutecmb.cap;
sub Lcaron by L caroncmb.cap;
sub Lcommaaccent by L commabelowcmb;
sub Ldotbelow by L dotbelowcmb;
sub Ldotbelowmacron by L dotbelowcmb macroncmb.cap;
sub Llinebelow by L macronbelowcmb;
sub Macute by M acutecmb.cap;
sub Mdotaccent by M dotaccentcmb.cap;
sub Mdotbelow by M dotbelowcmb;
sub Nacute by N acutecmb.cap;
sub Ngrave by N gravecmb.cap;
sub Ncaron by N caroncmb.cap;
sub Ntilde by N tildecmb.cap;
sub Ncommaaccent by N commabelowcmb;
sub Ndotaccent by N dotaccentcmb.cap;
sub Ndotbelow by N dotbelowcmb;
sub Nlinebelow by N macronbelowcmb;
sub Ograve by O gravecmb.cap;
sub Oacute by O acutecmb.cap;
sub Ocircumflex by O circumflexcmb.cap;
sub Otilde by O tildecmb.cap;
sub Odieresis by O dieresiscmb.cap;
sub Omacron by O macroncmb.cap;
sub Ohungarumlaut by O hungarumlautcmb.cap;
sub Ocaron by O caroncmb.cap;
sub Odotbelow by O dotbelowcmb;
sub Ohoi by O hoicmb.cap;
sub Ocircumflexacute by O circumflexcmb.cap acutecmb.cap;
sub Ocircumflexgrave by O circumflexcmb.cap gravecmb.cap;
sub Ocircumflexhoi by O circumflexcmb.cap hoicmb.cap;
sub Ocircumflextilde by O circumflexcmb.cap tildecmb.cap;
sub Ocircumflexdotbelow by O circumflexcmb.cap dotbelowcmb;
sub Obreve by O brevecmb.cap;
sub Omacronacute by O macroncmb.cap acutecmb.cap;
sub Ohornacute by Ohorn acutecmb.cap;
sub Ohorngrave by Ohorn gravecmb.cap;
sub Ohornhoi by Ohorn hoicmb.cap;
sub Ohorntilde by Ohorn tildecmb.cap;
sub Ohorndotbelow by Ohorn dotbelowcmb;
sub Oogonekacute by Oogonek acutecmb.cap;
sub Pdotaccent by P dotaccentcmb.cap;
sub Racute by R acutecmb.cap;
sub Rcommaaccent by R commabelowcmb;
sub Rcaron by R caroncmb.cap;
sub Rdotaccent by R dotaccentcmb.cap;
sub Rdotbelow by R dotbelowcmb;
sub Rdotbelowmacron by R dotbelowcmb macroncmb.cap;
sub Rlinebelow by R macronbelowcmb;
sub Sacute by S acutecmb.cap;
sub Scircumflex by S circumflexcmb.cap;
sub Scaron by S caroncmb.cap;
sub Scedilla by S cedillacmb.cap;
sub Scommaaccent by S commabelowcmb;
sub Sdotaccent by S dotaccentcmb.cap;
sub Sdotbelow by S dotbelowcmb;
sub Tcaron by T caroncmb.cap;
sub Tdotaccent by T dotaccentcmb.cap;
sub Tcedilla by T cedillacmb.cap;
sub Tcommaaccent by T commabelowcmb;
sub Tdotbelow by T dotbelowcmb;
sub Tlinebelow by T macronbelowcmb;
sub Tdieresis by T dieresiscmb.cap;
sub Ugrave by U gravecmb.cap;
sub Uacute by U acutecmb.cap;
sub Ucircumflex by U circumflexcmb.cap;
sub Utilde by U tildecmb.cap;
sub Udieresis by U dieresiscmb.cap;
sub Umacron by U macroncmb.cap;
sub Ubreve by U brevecmb.cap;
sub Uring by U ringcmb.cap;
sub Uhungarumlaut by U hungarumlautcmb.cap;
sub Ucaron by U caroncmb.cap;
sub Udieresismacron by U dieresiscmb.cap macroncmb.cap;
sub Udieresisacute by U dieresiscmb.cap acutecmb.cap;
sub Udieresiscaron by U dieresiscmb.cap caroncmb.cap;
sub Udieresisgrave by U dieresiscmb.cap gravecmb.cap;
sub Udotbelow by U dotbelowcmb;
sub Uhoi by U hoicmb.cap;
sub Uhornacute by Uhorn acutecmb.cap;
sub Uhorngrave by Uhorn gravecmb.cap;
sub Uhornhoi by Uhorn hoicmb.cap;
sub Uhorntilde by Uhorn tildecmb.cap;
sub Uhorndotbelow by Uhorn dotbelowcmb;
sub Uogonekacute by Uogonek acutecmb.cap;
sub Wgrave by W gravecmb.cap;
sub Wacute by W acutecmb.cap;
sub Wcircumflex by W circumflexcmb.cap;
sub Wdieresis by W dieresiscmb.cap;
sub Ygrave by Y gravecmb.cap;
sub Yacute by Y acutecmb.cap;
sub Ycircumflex by Y circumflexcmb.cap;
sub Ydieresis by Y dieresiscmb.cap;
sub Ydotaccent by Y dotaccentcmb.cap;
sub Ydotbelow by Y dotbelowcmb;
sub Yhoi by Y hoicmb.cap;
sub Ytilde by Y tildecmb.cap;
sub Zacute by Z acutecmb.cap;
sub Zcaron by Z caroncmb.cap;
sub Zdotaccent by Z dotaccentcmb.cap;
sub Zdotbelow by Z dotbelowcmb;
sub Zlinebelow by Z macronbelowcmb;
sub agrave by a gravecmb;
sub aacute by a acutecmb;
sub acircumflex by a circumflexcmb;
sub atilde by a tildecmb;
sub adieresis by a dieresiscmb;
sub amacron by a macroncmb;
sub abreve by a brevecmb;
sub aring by a ringcmb;
sub acaron by a caroncmb;
sub adotbelow by a dotbelowcmb;
sub ahoi by a hoicmb;
sub acircumflexacute by a circumflexcmb acutecmb;
sub acircumflexgrave by a circumflexcmb gravecmb;
sub acircumflexhoi by a circumflexcmb hoicmb;
sub acircumflextilde by a circumflexcmb tildecmb;
sub acircumflexdotbelow by a circumflexcmb dotbelowcmb;
sub abreveacute by a brevecmb acutecmb;
sub abrevegrave by a brevecmb gravecmb;
sub abrevehoi by a brevecmb hoicmb;
sub abrevetilde by a brevecmb tildecmb;
sub abrevedotbelow by a brevecmb dotbelowcmb;
sub aogonekacute by aogonek acutecmb;
sub aeacute by ae acutecmb;
sub aemacron by ae macroncmb;
sub bdotaccent by b dotaccentcmb.cap;
sub blinebelow by b macronbelowcmb;
sub ccedilla by c cedillacmb;
sub cacute by c acutecmb;
sub ccircumflex by c circumflexcmb;
sub ccaron by c caroncmb;
sub cdotaccent by c dotaccentcmb;
sub dcaron by d caroncmb;
sub ddotaccent by d dotaccentcmb.cap;
sub ddotbelow by d dotbelowcmb;
sub dlinebelow by d macronbelowcmb;
sub egrave by e gravecmb;
sub eacute by e acutecmb;
sub ecircumflex by e circumflexcmb;
sub ecaron by e caroncmb;
sub edieresis by e dieresiscmb;
sub emacron by e macroncmb;
sub ebreve by e brevecmb;
sub edotaccent by e dotaccentcmb;
sub edotbelow by e dotbelowcmb;
sub ehoi by e hoicmb;
sub etilde by e tildecmb;
sub ecircumflexacute by e circumflexcmb acutecmb;
sub ecircumflexgrave by e circumflexcmb gravecmb;
sub ecircumflexhoi by e circumflexcmb hoicmb;
sub ecircumflextilde by e circumflexcmb tildecmb;
sub ecircumflexdotbelow by e circumflexcmb dotbelowcmb;
sub eogonekacute by eogonek acutecmb;
sub emacronacute by e macroncmb acutecmb;
sub fdotaccent by f dotaccentcmb;
sub gacute by g acutecmb;
sub gcircumflex by g circumflexcmb;
sub gbreve by g brevecmb;
sub gdotaccent by g dotaccentcmb;
sub gcommaaccent by g commabelowcmb;
sub gcaron by g caroncmb;
sub gmacron by g macroncmb;
sub gtilde by g tildecmb;
sub hcircumflex by h circumflexcmb.cap;
sub hdotbelow by h dotbelowcmb;
sub hlinebelow by h macronbelowcmb;
sub hbrevebelow by h brevebelowcmb;
sub igrave by dotlessi gravecmb;
sub iacute by dotlessi acutecmb;
sub icircumflex by dotlessi circumflexcmb;
sub itilde by dotlessi tildecmb;
sub idieresis by dotlessi dieresiscmb;
sub imacron by dotlessi macroncmb;
sub icaron by dotlessi caroncmb;
sub ihoi by dotlessi hoicmb;
sub idotbelow by i dotbelowcmb;
sub iogonekacute by iogonek.x acutecmb;
sub ibreve by dotlessi brevecmb;
sub jcircumflex by dotlessj circumflexcmb;
sub kcommaaccent by k commabelowcmb;
sub kdotbelow by k dotbelowcmb;
sub klinebelow by k macronbelowcmb;
sub lacute by l acutecmb.cap;
sub lcaron by l caroncmb;
sub lcommaaccent by l commabelowcmb;
sub ldotbelow by l dotbelowcmb;
sub ldotbelowmacron by l dotbelowcmb macroncmb.cap;
sub llinebelow by l macronbelowcmb;
sub macute by m acutecmb;
sub mdotaccent by m dotaccentcmb;
sub mdotbelow by m dotbelowcmb;
sub nacute by n acutecmb;
sub ngrave by n gravecmb;
sub ncaron by n caroncmb;
sub ntilde by n tildecmb;
sub ncommaaccent by n commabelowcmb;
sub ndotaccent by n dotaccentcmb;
sub ndotbelow by n dotbelowcmb;
sub nlinebelow by n macronbelowcmb;
sub ograve by o gravecmb;
sub oacute by o acutecmb;
sub ocircumflex by o circumflexcmb;
sub otilde by o tildecmb;
sub odieresis by o dieresiscmb;
sub omacron by o macroncmb;
sub ohungarumlaut by o hungarumlautcmb;
sub ocaron by o caroncmb;
sub odotbelow by o dotbelowcmb;
sub ohoi by o hoicmb;
sub ocircumflexacute by o circumflexcmb acutecmb;
sub ocircumflexgrave by o circumflexcmb gravecmb;
sub ocircumflexhoi by o circumflexcmb hoicmb;
sub ocircumflextilde by o circumflexcmb tildecmb;
sub ocircumflexdotbelow by o circumflexcmb dotbelowcmb;
sub obreve by o brevecmb;
sub omacronacute by o macroncmb acutecmb;
sub ohornacute by ohorn acutecmb;
sub ohorngrave by ohorn gravecmb;
sub ohornhoi by ohorn hoicmb;
sub ohorntilde by ohorn tildecmb;
sub ohorndotbelow by ohorn dotbelowcmb;
sub oogonekacute by oogonek acutecmb;
sub pdotaccent by p dotaccentcmb;
sub racute by r acutecmb;
sub rcommaaccent by r commabelowcmb;
sub rcaron by r caroncmb;
sub rdotaccent by r dotaccentcmb;
sub rdotbelow by r dotbelowcmb;
sub rdotbelowmacron by r dotbelowcmb macroncmb;
sub rlinebelow by r macronbelowcmb;
sub sacute by s acutecmb;
sub scircumflex by s circumflexcmb;
sub scaron by s caroncmb;
sub scedilla by s cedillacmb;
sub scommaaccent by s commabelowcmb;
sub sdotaccent by s dotaccentcmb;
sub sdotbelow by s dotbelowcmb;
sub tcaron by t caroncmb;
sub tdotaccent by t dotaccentcmb;
sub tcedilla by t cedillacmb;
sub tcommaaccent by t commabelowcmb;
sub tdotbelow by t dotbelowcmb;
sub tlinebelow by t macronbelowcmb;
sub tdieresis by t dieresiscmb;
sub ugrave by u gravecmb;
sub uacute by u acutecmb;
sub ucircumflex by u circumflexcmb;
sub utilde by u tildecmb;
sub udieresis by u dieresiscmb;
sub umacron by u macroncmb;
sub ubreve by u brevecmb;
sub uring by u ringcmb;
sub uhungarumlaut by u hungarumlautcmb;
sub ucaron by u caroncmb;
sub udieresismacron by u dieresiscmb macroncmb;
sub udieresisacute by u dieresiscmb acutecmb;
sub udieresiscaron by u dieresiscmb caroncmb;
sub udieresisgrave by u dieresiscmb gravecmb;
sub udotbelow by u dotbelowcmb;
sub uhoi by u hoicmb;
sub uhornacute by uhorn acutecmb;
sub uhorngrave by uhorn gravecmb;
sub uhornhoi by uhorn hoicmb;
sub uhorntilde by uhorn tildecmb;
sub uhorndotbelow by uhorn dotbelowcmb;
sub uogonekacute by uogonek acutecmb;
sub wgrave by w gravecmb;
sub wacute by w acutecmb;
sub wcircumflex by w circumflexcmb;
sub wdieresis by w dieresiscmb;
sub ygrave by y gravecmb;
sub yacute by y acutecmb;
sub ycircumflex by y circumflexcmb;
sub ydieresis by y dieresiscmb;
sub ydotaccent by y dotaccentcmb;
sub ydotbelow by y dotbelowcmb;
sub yhoi by y hoicmb;
sub ytilde by y tildecmb;
sub zacute by z acutecmb;
sub zcaron by z caroncmb;
sub zdotaccent by z dotaccentcmb;
sub zdotbelow by z dotbelowcmb;
sub zlinebelow by z macronbelowcmb;
# Cyrillic
sub Yi by I dieresiscmb.cap;
sub yi by dotlessi dieresiscmb;
} DECOMPOSITION;
feature ccmp { # Glyph Composition / Decomposition
lookup GLYPH_DECOMPOSITION_CONTEXTUAL { #decomposes accented forms followed by combining accent
sub [@LETTERS_MINISCULE_LATIN_ACCENTED_ABOVE @LETTERS_MAJUSCULE_LATIN_ACCENTED_ABOVE]' lookup DECOMPOSITION @MARKS_CMB_BELOW; # only partial solution, above/below
sub [@LETTERS_MINISCULE_LATIN_ACCENTED_BELOW @LETTERS_MAJUSCULE_LATIN_ACCENTED_BELOW]' lookup DECOMPOSITION @MARKS_CMB_ABOVE; # only partial solution, below/above
sub [Ecircumflex ecircumflex Ocircumflex ocircumflex]' lookup DECOMPOSITION brevecmb; # Jarai language
sub [Emacron emacron Omacron omacron]' lookup DECOMPOSITION acutecmb; # Greek transliteration
sub [Yi yi]' lookup DECOMPOSITION acutecmb; # Cyrillic stressed notation
} GLYPH_DECOMPOSITION_CONTEXTUAL;
lookup GLYPH_COMPOSITION_CONTEXTUAL {
#substitutes dotless forms when followed by combining diacritics
sub i' ogonekcmb' @MARKS_CMB_ABOVE by iogonek.x;
sub [i j iogonek istroke jcrossedtail]' @MARKS_CMB_BELOW @MARKS_CMB_ABOVE by [dotlessi dotlessj iogonek.x istroke.x jcrossedtail.x];
sub [i j iogonek istroke jcrossedtail]' @MARKS_CMB_ABOVE by [dotlessi dotlessj iogonek.x istroke.x jcrossedtail.x];
} GLYPH_COMPOSITION_CONTEXTUAL;
lookup MARKS_COMPOSITION {
sub dieresiscmb acutecmb by dieresisacute;
sub dieresiscmb tonoscmb by dialytikatonoscmb;
sub dieresiscmb gravecmb by dieresisgrave;
sub dieresiscmb variacmb by dialytikagravecmb;
sub dieresiscmb [tildecmb perispomenicmb] by dieresistilde;
sub dieresiscmb macroncmb by dieresismacron;
sub dieresiscmb caroncmb by dieresiscaron;
sub circumflexcmb acutecmb by circumflexacute;
sub circumflexcmb gravecmb by circumflexgrave;
sub circumflexcmb hoicmb by circumflexhoi;
sub circumflexcmb tildecmb by circumflextilde;
sub circumflexcmb brevecmb by circumflexbreve;
sub brevecmb acutecmb by breveacute;
sub brevecmb gravecmb by brevegrave;
sub brevecmb hoicmb by brevehoi;
sub brevecmb [tildecmb perispomenicmb] by brevetilde;
sub aspercmb [tonoscmb acutecmb] by asperacutecmb;
sub aspercmb [variacmb gravecmb] by aspergravecmb;
sub aspercmb [tildecmb perispomenicmb] by aspertildecmb;
sub leniscmb [tonoscmb acutecmb] by lenisacutecmb;
sub leniscmb [variacmb gravecmb] by lenisgravecmb;
sub leniscmb [tildecmb perispomenicmb] by lenistildecmb;
} MARKS_COMPOSITION;
lookup GLYPH_COMPOSITION_LATIN_NONCONTEXTUAL {
sub A ogonekcmb acutecmb by Aogonekacute; # !! look at all this, in combination with above
sub E ogonekcmb acutecmb by Eogonekacute;
sub I ogonekcmb acutecmb by Iogonekacute;
sub O ogonekcmb acutecmb by Oogonekacute;
sub U ogonekcmb acutecmb by Uogonekacute;
sub a ogonekcmb acutecmb by aogonekacute;
sub e ogonekcmb acutecmb by eogonekacute;
sub i ogonekcmb acutecmb by iogonekacute;
sub o ogonekcmb acutecmb by oogonekacute;
sub u ogonekcmb acutecmb by uogonekacute;
sub A acutecmb ogonekcmb by Aogonekacute;
sub E acutecmb ogonekcmb by Eogonekacute;
sub I acutecmb ogonekcmb by Iogonekacute;
sub O acutecmb ogonekcmb by Oogonekacute;
sub U acutecmb ogonekcmb by Uogonekacute;
sub a acutecmb ogonekcmb by aogonekacute;
sub e acutecmb ogonekcmb by eogonekacute;
sub i acutecmb ogonekcmb by iogonekacute;
sub o acutecmb ogonekcmb by oogonekacute;
sub u acutecmb ogonekcmb by uogonekacute;
sub Aogonek acutecmb by Aogonekacute;
sub Eogonek acutecmb by Eogonekacute;
sub Iogonek acutecmb by Iogonekacute;
sub Oogonek acutecmb by Oogonekacute;
sub Uogonek acutecmb by Uogonekacute;
sub aogonek acutecmb by aogonekacute;
sub eogonek acutecmb by eogonekacute;
sub iogonek acutecmb by iogonekacute;
sub oogonek acutecmb by oogonekacute;
sub uogonek acutecmb by uogonekacute;
sub d caroncmb by dcaron;
sub l caroncmb by lcaron;
sub t caroncmb by tcaron;
sub g tildecmb by gtilde;
sub G tildecmb by Gtilde;
sub a ogonekcmb by aogonek;
sub A ogonekcmb by Aogonek;
sub e ogonekcmb by eogonek;
sub E ogonekcmb by Eogonek;
sub i ogonekcmb by iogonek;
sub I ogonekcmb by Iogonek;
sub o ogonekcmb by oogonek;
sub O ogonekcmb by Oogonek;
sub u ogonekcmb by uogonek;
sub U ogonekcmb by Uogonek;
sub g cedillacmb by gcommaaccent; # The decomposition defined by Unicode is: 0067+0327
sub g.a cedillacmb by gcommaaccent.a;
sub schwa hookrhoticmod by schwahookrhotic;
} GLYPH_COMPOSITION_LATIN_NONCONTEXTUAL;
lookup GLYPH_COMPOSITION_GREEK_POLYTONIC { #to add: Greek localized combining marks
sub Alpha leniscmb by Alphalenis;
sub Alpha lenisacutecmb by Alphalenisacute;
sub Alpha lenisgravecmb by Alphalenisgrave;
sub Alpha lenistildecmb by Alphalenistilde;
sub Alpha aspercmb by Alphaasper;
sub Alpha asperacutecmb by Alphaasperacute;
sub Alpha aspergravecmb by Alphaaspergrave;
sub Alpha aspertildecmb by Alphaaspertilde;
sub Alpha acutecmb by Alphaacute;
sub Alpha gravecmb by Alphagrave;
sub Alpha macroncmb by Alphamacron;
sub Alpha brevecmb by Alphabreve;
sub Alpha [iotasubscriptcmb iotaadscript] by Alphaiotasub;
sub Alpha [iotasubscriptcmb iotaadscript] leniscmb by Alphaiotasublenis;
sub Alpha [iotasubscriptcmb iotaadscript] lenisacutecmb by Alphaiotasublenisacute;
sub Alpha [iotasubscriptcmb iotaadscript] lenisgravecmb by Alphaiotasublenisgrave;
sub Alpha [iotasubscriptcmb iotaadscript] lenistildecmb by Alphaiotasublenistilde;
sub Alpha [iotasubscriptcmb iotaadscript] aspercmb by Alphaiotasubasper;
sub Alpha [iotasubscriptcmb iotaadscript] asperacutecmb by Alphaiotasubasperacute;
sub Alpha [iotasubscriptcmb iotaadscript] aspergravecmb by Alphaiotasubaspergrave;
sub Alpha [iotasubscriptcmb iotaadscript] aspertildecmb by Alphaiotasubaspertilde;
sub Epsilon leniscmb by Epsilonlenis;
sub Epsilon lenisacutecmb by Epsilonlenisacute;
sub Epsilon lenisgravecmb by Epsilonlenisgrave;
sub Epsilon aspercmb by Epsilonasper;
sub Epsilon asperacutecmb by Epsilonasperacute;
sub Epsilon aspergravecmb by Epsilonaspergrave;
sub Epsilon acutecmb by Epsilonacute;
sub Epsilon gravecmb by Epsilongrave;
sub Eta leniscmb by Etalenis;
sub Eta lenisacutecmb by Etalenisacute;
sub Eta lenisgravecmb by Etalenisgrave;
sub Eta lenistildecmb by Etalenistilde;
sub Eta aspercmb by Etaasper;
sub Eta asperacutecmb by Etaasperacute;
sub Eta aspergravecmb by Etaaspergrave;
sub Eta aspertildecmb by Etaaspertilde;
sub Eta acutecmb by Etaacute;
sub Eta gravecmb by Etagrave;
sub Eta [iotasubscriptcmb iotaadscript] by Etaiotasub;
sub Eta [iotasubscriptcmb iotaadscript] leniscmb by Etaiotasublenis;
sub Eta [iotasubscriptcmb iotaadscript] lenisacutecmb by Etaiotasublenisacute;
sub Eta [iotasubscriptcmb iotaadscript] lenisgravecmb by Etaiotasublenisgrave;
sub Eta [iotasubscriptcmb iotaadscript] lenistildecmb by Etaiotasublenistilde;
sub Eta [iotasubscriptcmb iotaadscript] aspercmb by Etaiotasubasper;
sub Eta [iotasubscriptcmb iotaadscript] asperacutecmb by Etaiotasubasperacute;
sub Eta [iotasubscriptcmb iotaadscript] aspergravecmb by Etaiotasubaspergrave;
sub Eta [iotasubscriptcmb iotaadscript] aspertildecmb by Etaiotasubaspertilde;
sub Iota leniscmb by Iotalenis;
sub Iota lenisacutecmb by Iotalenisacute;
sub Iota lenisgravecmb by Iotalenisgrave;
sub Iota lenistildecmb by Iotalenistilde;
sub Iota aspercmb by Iotaasper;
sub Iota asperacutecmb by Iotaasperacute;
sub Iota aspergravecmb by Iotaaspergrave;
sub Iota aspertilde by Iotaaspertilde;
sub Iota acutecmb by Iotaacute;
sub Iota gravecmb by Iotagrave;
sub Iota macroncmb by Iotamacron;
sub Iota brevecmb by Iotabreve;
sub Iota dieresiscmb by Iotadieresis;
sub Omicron leniscmb by Omicronlenis;
sub Omicron lenisacutecmb by Omicronlenisacute;
sub Omicron lenisgravecmb by Omicronlenisgrave;
sub Omicron aspercmb by Omicronasper;
sub Omicron asperacutecmb by Omicronasperacute;
sub Omicron aspergravecmb by Omicronaspergrave;
sub Omicron acutecmb by Omicronacute;
sub Omicron gravecmb by Omicrongrave;
sub Rho aspercmb by Rhoasper;
sub Upsilon aspercmb by Upsilonasper;
sub Upsilon asperacutecmb by Upsilonasperacute;
sub Upsilon aspergravecmb by Upsilonaspergrave;
sub Upsilon aspertildecmb by Upsilonaspertilde;
sub Upsilon acutecmb by Upsilonacute;
sub Upsilon gravecmb by Upsilongrave;
sub Upsilon macroncmb by Upsilonmacron;
sub Upsilon brevecmb by Upsilonbreve;
sub Upsilon dieresiscmb by Upsilondieresis;
sub Omega psili by Omegalenis;
sub Omega lenisacute by Omegalenisacute;
sub Omega lenisgravecmb by Omegalenisgrave;
sub Omega lenistildecmb by Omegalenistilde;
sub Omega aspercmb by Omegaasper;
sub Omega asperacutecmb by Omegaasperacute;
sub Omega aspergravecmb by Omegaaspergrave;
sub Omega aspertildecmb by Omegaaspertilde;
sub Omega acutecmb by Omegaacute;
sub Omega gravecmb by Omegagrave;
sub Omega [iotasubscriptcmb iotaadscript] by Omegaiotasub;
sub Omega [iotasubscriptcmb iotaadscript] leniscmb by Omegaiotasublenis;
sub Omega [iotasubscriptcmb iotaadscript] lenisacutecmb by Omegaiotasublenisacute;
sub Omega [iotasubscriptcmb iotaadscript] lenisgravecmb by Omegaiotasublenisgrave;
sub Omega [iotasubscriptcmb iotaadscript] lenistildecmb by Omegaiotasublenistilde;
sub Omega [iotasubscriptcmb iotaadscript] aspercmb by Omegaiotasubasper;
sub Omega [iotasubscriptcmb iotaadscript] asperacutecmb by Omegaiotasubasperacute;
sub Omega [iotasubscriptcmb iotaadscript] aspergravecmb by Omegaiotasubaspergrave;
sub Omega [iotasubscriptcmb iotaadscript] aspertildecmb by Omegaiotasubaspertilde;
sub Alphaiotasub leniscmb by Alphaiotasublenis;
sub Alphaiotasub lenisacutecmb by Alphaiotasublenisacute;
sub Alphaiotasub lenisgravecmb by Alphaiotasublenisgrave;
sub Alphaiotasub lenistildecmb by Alphaiotasublenistilde;
sub Alphaiotasub aspercmb by Alphaiotasubasper;
sub Alphaiotasub asperacutecmb by Alphaiotasubasperacute;
sub Alphaiotasub aspergravecmb by Alphaiotasubaspergrave;
sub Alphaiotasub aspertildecmb by Alphaiotasubaspertilde;
sub Etaiotasub leniscmb by Etaiotasublenis;
sub Etaiotasub lenisacutecmb by Etaiotasublenisacute;
sub Etaiotasub lenisgravecmb by Etaiotasublenisgrave;
sub Etaiotasub lenistildecmb by Etaiotasublenistilde;
sub Etaiotasub aspercmb by Etaiotasubasper;
sub Etaiotasub asperacutecmb by Etaiotasubasperacute;
sub Etaiotasub aspergravecmb by Etaiotasubaspergrave;
sub Etaiotasub aspertildecmb by Etaiotasubaspertilde;
sub Omegaiotasub leniscmb by Omegaiotasublenis;
sub Omegaiotasub lenisacutecmb by Omegaiotasublenisacute;
sub Omegaiotasub lenisgravecmb by Omegaiotasublenisgrave;
sub Omegaiotasub lenistildecmb by Omegaiotasublenistilde;
sub Omegaiotasub aspercmb by Omegaiotasubasper;
sub Omegaiotasub asperacutecmb by Omegaiotasubasperacute;
sub Omegaiotasub aspergravecmb by Omegaiotasubaspergrave;
sub Omegaiotasub aspertildecmb by Omegaiotasubaspertilde;
sub alpha leniscmb by alphalenis;
sub alpha lenisacutecmb by alphalenisacute;
sub alpha lenisgravecmb by alphalenisgrave;
sub alpha lenistildecmb by alphalenistilde;
sub alpha aspercmb by alphaasper;
sub alpha asperacutecmb by alphaasperacute;
sub alpha aspergravecmb by alphaaspergrave;
sub alpha aspertildecmb by alphaaspertilde;
sub alpha acutecmb by alphaacute;
sub alpha gravecmb by alphagrave;
sub alpha perispomenicmb by alphatilde;
sub alpha macroncmb by alphamacron;
sub alpha brevecmb by alphabreve;
sub alpha iotasubscriptcmb by alphaiotasub;
sub alpha iotasubscriptcmb leniscmb by alphaiotasublenis;
sub alpha iotasubscriptcmb lenisacutecmb by alphaiotasublenisacute;
sub alpha iotasubscriptcmb lenisgravecmb by alphaiotasublenisgrave;
sub alpha iotasubscriptcmb lenistildecmb by alphaiotasublenistilde;
sub alpha iotasubscriptcmb aspercmb by alphaiotasubasper;
sub alpha iotasubscriptcmb asperacutecmb by alphaiotasubasperacute;
sub alpha iotasubscriptcmb aspergravecmb by alphaiotasubaspergrave;
sub alpha iotasubscriptcmb aspertildecmb by alphaiotasubaspertilde;
sub alpha iotasubscriptcmb acutecmb by alphaiotasubacute;
sub alpha iotasubscriptcmb gravecmb by alphaiotasubgrave;
sub alpha iotasubscriptcmb perispomenicmb by alphaiotasubtilde;
sub epsilon leniscmb by epsilonlenis;
sub epsilon lenisacutecmb by epsilonlenisacute;
sub epsilon lenisgravecmb by epsilonlenisgrave;
sub epsilon aspercmb by epsilonasper;
sub epsilon asperacutecmb by epsilonasperacute;
sub epsilon aspergravecmb by epsilonaspergrave;
sub epsilon acutecmb by epsilonacute;
sub epsilon gravecmb by epsilongrave;
sub eta leniscmb by etalenis;
sub eta lenisacutecmb by etalenisacute;
sub eta lenisgravecmb by etalenisgrave;
sub eta lenistildecmb by etalenistilde;
sub eta aspercmb by etaasper;
sub eta asperacutecmb by etaasperacute;
sub eta aspergravecmb by etaaspergrave;
sub eta aspertildecmb by etaaspertilde;
sub eta acutecmb by etaacute;
sub eta gravecmb by etagrave;
sub eta perispomenicmb by etatilde;
sub eta iotasubscriptcmb by etaiotasub;
sub eta iotasubscriptcmb leniscmb by etaiotasublenis;
sub eta iotasubscriptcmb lenisacutecmb by etaiotasublenisacute;
sub eta iotasubscriptcmb lenisgravecmb by etaiotasublenisgrave;
sub eta iotasubscriptcmb lenistildecmb by etaiotasublenistilde;
sub eta iotasubscriptcmb aspercmb by etaiotasubasper;
sub eta iotasubscriptcmb asperacutecmb by etaiotasubasperacute;
sub eta iotasubscriptcmb aspergravecmb by etaiotasubaspergrave;
sub eta iotasubscriptcmb aspertildecmb by etaiotasubaspertilde;
sub eta iotasubscriptcmb acutecmb by etaiotasubacute;
sub eta iotasubscriptcmb gravecmb by etaiotasubgrave;
sub eta iotasubscriptcmb perispomenicmb by etaiotasubtilde;
sub iota leniscmb by iotalenis;
sub iota lenisacutecmb by iotalenisacute;
sub iota lenisgravecmb by iotalenisgrave;
sub iota lenistildecmb by iotalenistilde;
sub iota aspercmb by iotaasper;
sub iota asperacutecmb by iotaasperacute;
sub iota aspergravecmb by iotaaspergrave;
sub iota aspertildecmb by iotaaspertilde;
sub iota dieresisacute by iotadieresisacute;
sub iota dieresisgrave by iotadieresisgrave;
sub iota dieresistilde by iotadieresistilde;
sub iota acutecmb by iotaacute;
sub iota gravecmb by iotagrave;
sub iota perispomenicmb by iotatilde;
sub iota macroncmb by iotamacron;
sub iota brevecmb by iotabreve;
sub iota dieresiscmb by iotadieresis;
sub omicron leniscmb by omicronlenis;
sub omicron lenisacutecmb by omicronlenisacute;
sub omicron lenisgravecmb by omicronlenisgrave;
sub omicron aspercmb by omicronasper;
sub omicron asperacutecmb by omicronasperacute;
sub omicron aspergravecmb by omicronaspergrave;
sub omicron acutecmb by omicronacute;
sub omicron gravecmb by omicrongrave;
sub rho leniscmb by rholenis;
sub rho aspercmb by rhoasper;
sub upsilon leniscmb by upsilonlenis;
sub upsilon lenisacutecmb by upsilonlenisacute;
sub upsilon lenisgravecmb by upsilonlenisgrave;
sub upsilon lenistildecmb by upsilonlenistilde;
sub upsilon aspercmb by upsilonasper;
sub upsilon asperacutecmb by upsilonasperacute;
sub upsilon aspergravecmb by upsilonaspergrave;
sub upsilon aspertildecmb by upsilonaspertilde;
sub upsilon dieresisacute by upsilondieresisacute;
sub upsilon dieresisgrave by upsilondieresisgrave;
sub upsilon dieresistilde by upsilondieresistilde;
sub upsilon acutecmb by upsilonacute;
sub upsilon gravecmb by upsilongrave;
sub upsilon perispomenicmb by upsilontilde;
sub upsilon macroncmb by upsilonmacron;
sub upsilon brevecmb by upsilonbreve;
sub upsilon dieresiscmb by upsilondieresis;
sub omega leniscmb by omegalenis;
sub omega lenisacutecmb by omegalenisacute;
sub omega lenisgravecmb by omegalenisgrave;
sub omega lenistildecmb by omegalenistilde;
sub omega aspercmb by omegaasper;
sub omega asperacutecmb by omegaasperacute;
sub omega aspergravecmb by omegaaspergrave;
sub omega aspertildecmb by omegaaspertilde;
sub omega acutecmb by omegaacute;
sub omega gravecmb by omegagrave;
sub omega perispomenicmb by omegatilde;
sub omega iotasubscriptcmb by omegaiotasub;
sub omega iotasubscriptcmb leniscmb by omegaiotasublenis;
sub omega iotasubscriptcmb lenisacutecmb by omegaiotasublenisacute;
sub omega iotasubscriptcmb lenisgravecmb by omegaiotasublenisgrave;
sub omega iotasubscriptcmb lenistildecmb by omegaiotasublenistilde;
sub omega iotasubscriptcmb aspercmb by omegaiotasubasper;
sub omega iotasubscriptcmb asperacutecmb by omegaiotasubasperacute;
sub omega iotasubscriptcmb aspergravecmb by omegaiotasubaspergrave;
sub omega iotasubscriptcmb aspertildecmb by omegaiotasubaspertilde;
sub omega iotasubscriptcmb acutecmb by omegaiotasubacute;
sub omega iotasubscriptcmb gravecmb by omegaiotasubgrave;
sub omega iotasubscriptcmb perispomenicmb by omegaiotasubtilde;
sub alphaiotasub leniscmb by alphaiotasublenis;
sub alphaiotasub lenisacutecmb by alphaiotasublenisacute;
sub alphaiotasub lenisgravecmb by alphaiotasublenisgrave;
sub alphaiotasub lenistildecmb by alphaiotasublenistilde;
sub alphaiotasub aspercmb by alphaiotasubasper;
sub alphaiotasub asperacutecmb by alphaiotasubasperacute;
sub alphaiotasub aspergravecmb by alphaiotasubaspergrave;
sub alphaiotasub aspertildecmb by alphaiotasubaspertilde;
sub alphaiotasub acutecmb by alphaiotasubacute;
sub alphaiotasub gravecmb by alphaiotasubgrave;
sub alphaiotasub perispomenicmb by alphaiotasubtilde;
sub etaiotasub leniscmb by etaiotasublenis;
sub etaiotasub lenisacutecmb by etaiotasublenisacute;
sub etaiotasub lenisgravecmb by etaiotasublenisgrave;
sub etaiotasub lenistildecmb by etaiotasublenistilde;
sub etaiotasub aspercmb by etaiotasubasper;
sub etaiotasub asperacutecmb by etaiotasubasperacute;
sub etaiotasub aspergravecmb by etaiotasubaspergrave;
sub etaiotasub aspertildecmb by etaiotasubaspertilde;
sub etaiotasub acutecmb by etaiotasubacute;
sub etaiotasub gravecmb by etaiotasubgrave;
sub etaiotasub perispomenicmb by etaiotasubtilde;
sub omegaiotasub leniscmb by omegaiotasublenis;
sub omegaiotasub lenisacutecmb by omegaiotasublenisacute;
sub omegaiotasub lenisgravecmb by omegaiotasublenisgrave;
sub omegaiotasub lenistildecmb by omegaiotasublenistilde;
sub omegaiotasub aspercmb by omegaiotasubasper;
sub omegaiotasub asperacutecmb by omegaiotasubasperacute;
sub omegaiotasub aspergravecmb by omegaiotasubaspergrave;
sub omegaiotasub aspertildecmb by omegaiotasubaspertilde;
sub omegaiotasub acutecmb by omegaiotasubacute;
sub omegaiotasub gravecmb by omegaiotasubgrave;
sub omegaiotasub perispomenicmb by omegaiotasubtilde;
} GLYPH_COMPOSITION_GREEK_POLYTONIC;
lookup YI_UKRAINIAN { # substitutes alternate yi in context
sub yi' yi by yi.a;
sub Yi' Yi by Yi.a;
sub Yi.sc' Yi.sc by Yi.sa;
sub [iukran yi.a] yi' by yi.a;
sub Yi.a Yi' by Yi.a;
sub Yi.sa Yi.sc' by Yi.sa;
} YI_UKRAINIAN;
lookup MAJUCSULE_ACCENTS_CMB_CONTEXT { # substitutes combining marks for miniscules with forms for majuscules
sub [@LETTERS_MAJUSCULE_ALL @LETTERS_SMALLCAP_ALL @LETTERS_MINISCULE_LATIN_ASCENDERS] @MARKS_CMB_LC' by @MARKS_CMB_CASE;
sub @MARKS_CMB_CASE @MARKS_CMB_LC' by @MARKS_CMB_CASE;
sub [@LETTERS_MINISCULE_LATIN_ASCENDERS t esh] breveinverteddoublecmb' by breveinverteddoublecmb.a;
sub breveinverteddoublecmb' [@LETTERS_MINISCULE_LATIN_ASCENDERS t esh] by breveinverteddoublecmb.a;
} MAJUCSULE_ACCENTS_CMB_CONTEXT;
} ccmp;
#--------------------------------------
#OK
feature locl { # Localized Forms
script latn;
lookup GREEK_TO_IPA { # substitutes Greek characters by Latin characters
sub alpha by alphalatin;
sub beta by betalatin;
sub gamma by gammalatin;
# sub theta by theta.alt1; #from Myriad features
sub iota by iotalatin;
sub upsilon by upsilonlatin;
sub phi by philatin;
sub chi by chilatin;
} GREEK_TO_IPA;
language ATH include_dflt;
lookup OGONEKS_ATH {
sub [Aogonek Eogonek aogonek eogonek uogonek] by [Aogonek.d Eogonek.d aogonek.d eogonek.d uogonek.d];
} OGONEKS_ATH;
language NAV include_dflt;
lookup OGONEKS_ATH;
language TRK include_dflt;
lookup I_TURKISH {
sub i by i.trk;
} I_TURKISH;
language AZE include_dflt;
lookup I_TURKISH;
language CRT include_dflt;
lookup I_TURKISH;
language NSM include_dflt;
lookup ENG_SAMI { # preferred Eng shape for Sami languages
sub Eng by Eng.a;
} ENG_SAMI;
language SKS include_dflt;
lookup ENG_SAMI;
language IPPH include_dflt;
# lookup A_IPA { # ITALIC ONLY substitutes single-storey a with double-storey variants
# sub a by a.alt;
# sub ae by ae.alt;
# sub asupmod by asupmod.alt;
# } A_IPA;
#
language APPH include_dflt;
# lookup A_IPA;
script grek;
sub [acutecmb gravecmb commaturnedabovecmb commaabovecmb] by [tonoscmb variacmb aspercmb leniscmb]; # combining marks
script cyrl;
sub [brevecmb brevecmb.cap] by [brevecmb.cyr brevecmb.cyrcap]; # combining marks
language SRB include_dflt;
lookup BE_LC_SRB {
sub be by be.srb;
} BE_LC_SRB;
} locl;
#--------------------------------------
feature numr { # Numerators
lookup NUMR {
sub @FIGURES_LINING_TABULAR by @FIGURES_NUMERATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_NUMERATOR;
} NUMR;
} numr;
#--------------------------------------
feature dnom { # Denominators
sub @FIGURES_LINING_TABULAR by @FIGURES_DENOMINATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_DENOMINATOR;
} dnom;
#--------------------------------------
feature frac { # Fractions
@SPACE_DEFAULT = [space nbspace];
@SPACE_FRAC = [space.frac nbspace.frac];