summaryrefslogtreecommitdiff
path: root/src/features/ccmp.fea
blob: 8de02fc2fd3dfc0ebf79b4371d59800381eb9cc9 (plain)
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
@CCMP_ACC = [
  gravecomb acutecomb tildecomb brevetildecomb.cn brevehookcomb.cn
  breveacutecomb.cn circumflextildecomb.cn circumflexhookcomb.cn
  circumflexgravecomb.cn circumflexacutecomb.cn brevegravecomb.cn
  macroncomb dieresismacroncomb.cn dieresisacutecomb.cn
  dieresiscaroncomb.cn dieresisgravecomb.cn dotmacroncomb.cn
  tildeacutecomb macrongravecomb.cn macronacutecomb.cn
  macrondieresiscomb.cn acutedotcomb.cn carondotcomb.cn
  tildemacroncomb.cn tildedieresiscomb.cn circumflexnosp overscorenosp
  brevenosp dotnosp dieresisnosp hookabovecmb ringnosp acutedblnosp caroncmb
  linevertnosp linevertdblnosp dblgravecmb candrabindunosp breveinvnosp
  commaturnsupnosp commaabovecmb commasuprevnosp commaaboverightcmb
  anglesupnosp hornnosp xsupnosp tildevertsupnosp overscoredblnosp
  graveleftnosp acuterightnosp perispomenigreekcmb koroniscmb
  diaeresistonosnosp uni0346 uni034A uni034B uni034C arrowheadrightabovecomb uni0351
  uni0352 uni0357 uni0358 uni035B uni1DC0 uni1DC1 uni1DC3 uni1DC4
  uni1DC5 uni1DC6 uni1DC7 uni1DC8 uni1DC9 uni1DCB uni1DCC uni1DCD
  uni1DCE uni1DD1 uni1DD2 uni1DD3 uni1DD4 uni1DD5 uni1DD6 uni1DD7
  uni1DD8 uni1DD9 uni1DDA uni1DDB uni1DDC uni1DDD uni1DDE uni1DDF
  uni1DE0 uni1DE1 uni1DE2 uni1DE3 uni1DE4 uni1DE5 uni1DE6 uni1DE7
  uni1DE8 uni1DE9 uni1DEA uni1DEB uni1DEC uni1DED uni1DEE uni1DEF
  uni1DF0 uni1DF1 uni1DF2 uni1DF3 uni1DF4 uni1DF5 uni1DFE uni0363
  uni0364 uni0365 uni0366 uni0367 uni0368 uni0369 uni036A uni036B
  uni036C uni036D uni036E uni036F titlocyrilliccmb
  palatalizationcyrilliccmb dasiapneumatacyrilliccmb
  psilipneumatacyrilliccmb uni0487 uni20F0 uniA69F uni2DFF uni20DC
  uniFE20 uniFE21 uniFE22 uniFE23 uniFE24 uniFE25 uniFE26
];

# Transpose sequences like /i /gravecomb -> /idotless /gravecomb
lookup ccmp02 {
  sub i' @CCMP_ACC by idotless;
  sub j' @CCMP_ACC by jdotless;
  sub ibar' @CCMP_ACC by uni0268.ccmp;
  sub iogonek' @CCMP_ACC by uni012F.ccmp; # iogonek is generated
  sub uni0249' @CCMP_ACC by uni0249.ccmp;
  sub jcrosstail' @CCMP_ACC by jcrosstail.ccmp;
  sub yotgreek' @CCMP_ACC by jdotless;
  sub icyrillic' @CCMP_ACC by idotless;
  sub jecyrillic' @CCMP_ACC by jdotless;
  sub itildebelow' @CCMP_ACC by uni1E2D.ccmp; # uni1E2D.ccmp is generated
  sub idotbelow' @CCMP_ACC by uni1ECB.ccmp; # both are generated
  sub i.numr' @CCMP_ACC by uni2071.ccmp;
} ccmp02;

lookup ccmp03 {
  sub d caroncmb by dcaron;
  sub l caroncmb by lcaron;
  sub t caroncmb by tcaron;

  sub A gravecomb by Agrave;
  sub A acutecomb by Aacute;
  sub A circumflexnosp by Acircumflex;
  sub A tildecomb by Atilde;
  sub A dieresisnosp by Adieresis;
  sub A ringnosp by Aring;
  sub A ringacute.cn by Aringacute;
  sub Aogonek ringnosp by Aringogonek;
  sub C cedillanosp by Ccedilla;
  sub E gravecomb by Egrave;
  sub E acutecomb by Eacute;
  sub E circumflexnosp by Ecircumflex;
  sub E dieresisnosp by Edieresis;
  sub I gravecomb by Igrave;
  sub I acutecomb by Iacute;
  sub I circumflexnosp by Icircumflex;
  sub I dieresisnosp by Idieresis;
  sub N tildecomb by Ntilde;
  sub O gravecomb by Ograve;
  sub O acutecomb by Oacute;
  sub O circumflexnosp by Ocircumflex;
  sub O tildecomb by Otilde;
  sub O dieresisnosp by Odieresis;
  sub U gravecomb by Ugrave;
  sub U acutecomb by Uacute;
  sub U circumflexnosp by Ucircumflex;
  sub U dieresisnosp by Udieresis;
  sub Y acutecomb by Yacute;
  sub Y ogoneknosp by Yogonek;
  sub a gravecomb by agrave;
  sub a acutecomb by aacute;
  sub a circumflexnosp by acircumflex;
  sub a tildecomb by atilde;
  sub a dieresisnosp by adieresis;
  sub a ringnosp by aring;
  sub a ringacute.cn by aringacute;
  sub c cedillanosp by ccedilla;
  sub e gravecomb by egrave;
  sub e acutecomb by eacute;
  sub e circumflexnosp by ecircumflex;
  sub e dieresisnosp by edieresis;
  sub idotless gravecomb by igrave;
  sub idotless acutecomb by iacute;
  sub idotless circumflexnosp by icircumflex;
  sub idotless dieresisnosp by idieresis;
  sub n tildecomb by ntilde;
  sub o gravecomb by ograve;
  sub o acutecomb by oacute;
  sub o circumflexnosp by ocircumflex;
  sub o tildecomb by otilde;
  sub o dieresisnosp by odieresis;
  sub u gravecomb by ugrave;
  sub u acutecomb by uacute;
  sub u circumflexnosp by ucircumflex;
  sub u dieresisnosp by udieresis;
  sub y acutecomb by yacute;
  sub y ogoneknosp by yogonek;
  sub y dieresisnosp by ydieresis;
  sub A macroncomb by Amacron;
  sub a macroncomb by amacron;
  sub A brevenosp by Abreve;
  sub a brevenosp by abreve;
  sub A ogoneknosp by Aogonek;
  sub a ogoneknosp by aogonek;
  sub aogonek ringnosp by aringogonek;
  sub C acutecomb by Cacute;
  sub c acutecomb by cacute;
  sub C circumflexnosp by Ccircumflex;
  sub c circumflexnosp by ccircumflex;
  sub C dotnosp by Cdotaccent;
  sub c dotnosp by cdotaccent;
  sub C caroncmb by Ccaron;
  sub c caroncmb by ccaron;
  sub D caroncmb by Dcaron;
  sub E macroncomb by Emacron;
  sub e macroncomb by emacron;
  sub E brevenosp by Ebreve;
  sub e brevenosp by ebreve;
  sub E dotnosp by Edotaccent;
  sub e dotnosp by edotaccent;
  sub E ogoneknosp by Eogonek;
  sub e ogoneknosp by eogonek;
  sub E caroncmb by Ecaron;
  sub e caroncmb by ecaron;
  sub G circumflexnosp by Gcircumflex;
  sub g circumflexnosp by gcircumflex;
  sub G brevenosp by Gbreve;
  sub g brevenosp by gbreve;
  sub G dotnosp by Gdotaccent;
  sub g dotnosp by gdotaccent;
  sub G commaaccent by Gcommaaccent;
  sub g commaaccentrotate.cn by gcommaaccent;
  sub H circumflexnosp by Hcircumflex;
  sub h circumflexnosp by hcircumflex;
  sub I tildecomb by Itilde;
  sub idotless tildecomb by itilde;
  sub I macroncomb by Imacron;
  sub idotless macroncomb by imacron;
  sub I brevenosp by Ibreve;
  sub idotless brevenosp by ibreve;
  sub I ogoneknosp by Iogonek;
  sub i ogoneknosp by iogonek;
  sub I dotnosp by Idotaccent;
  sub J circumflexnosp by Jcircumflex;
  sub jdotless circumflexnosp by jcircumflex;
  sub K commaaccent by Kcommaaccent;
  sub k commaaccent by kcommaaccent;
  sub L acutecomb by Lacute;
  sub l acutecomb by lacute;
  sub L commaaccent by Lcommaaccent;
  sub l commaaccent by lcommaaccent;
  sub L dotnosp by Ldot;
  sub l dotnosp by ldot;
  sub N acutecomb by Nacute;
  sub n acutecomb by nacute;
  sub N commaaccent by Ncommaaccent;
  sub n commaaccent by ncommaaccent;
  sub N caroncmb by Ncaron;
  sub n caroncmb by ncaron;
  sub O macroncomb by Omacron;
  sub o macroncomb by omacron;
  sub O brevenosp by Obreve;
  sub o brevenosp by obreve;
  sub O acutedblnosp by Ohungarumlaut;
  sub o acutedblnosp by ohungarumlaut;
  sub R acutecomb by Racute;
  sub r acutecomb by racute;
  sub R commaaccent by Rcommaaccent;
  sub r commaaccent by rcommaaccent;
  sub R caroncmb by Rcaron;
  sub r caroncmb by rcaron;
  sub S acutecomb by Sacute;
  sub s acutecomb by sacute;
  sub S circumflexnosp by Scircumflex;
  sub s circumflexnosp by scircumflex;
  sub S cedillanosp by Scedilla;
  sub s cedillanosp by scedilla;
  sub S commaaccent by Scommaaccent;
  sub s commaaccent by scommaaccent;
  sub S caroncmb by Scaron;
  sub s caroncmb by scaron;
  sub T commaaccent by uni021A;
  sub t commaaccent by tcommaaccent;
  sub T cedillanosp by Tcommaaccent;
  sub t cedillanosp by tcedilla;
  sub T caroncmb by Tcaron;
  sub U tildecomb by Utilde;
  sub u tildecomb by utilde;
  sub U macroncomb by Umacron;
  sub u macroncomb by umacron;
  sub U brevenosp by Ubreve;
  sub u brevenosp by ubreve;
  sub U ringnosp by Uring;
  sub u ringnosp by uring;
  sub U acutedblnosp by Uhungarumlaut;
  sub u acutedblnosp by uhungarumlaut;
  sub U ogoneknosp by Uogonek;
  sub u ogoneknosp by uogonek;
  sub W circumflexnosp by Wcircumflex;
  sub w circumflexnosp by wcircumflex;
  sub Y circumflexnosp by Ycircumflex;
  sub y circumflexnosp by ycircumflex;
  sub Y dieresisnosp by Ydieresis;
  sub Z acutecomb by Zacute;
  sub z acutecomb by zacute;
  sub Z dotnosp by Zdotaccent;
  sub z dotnosp by zdotaccent;
  sub Z caroncmb by Zcaron;
  sub z caroncmb by zcaron;
  sub AE acutecomb by AEacute;
  sub ae acutecomb by aeacute;
  sub Oslash acutecomb by Oslashacute;
  sub oslash acutecomb by oslashacute;
  #sub z caroncmb by zcaron;
  sub W gravecomb by Wgrave;
  sub w gravecomb by wgrave;
  sub W acutecomb by Wacute;
  sub w acutecomb by wacute;
  sub W dieresisnosp by Wdieresis;
  sub w dieresisnosp by wdieresis;
  sub Y gravecomb by Ygrave;
  sub y gravecomb by ygrave;
  sub jdotless caroncmb by jcaron;
  sub A dotbelow by Adotbelow;
  sub a dotbelow by adotbelow;
  sub A hookabovecmb by Ahookabove;
  sub a hookabovecmb by ahookabove;
  #sub A circumflexacutecomb.cn by uni1EA4;
  sub A circumflexnosp acutecomb by Acircumflexacute;
  sub a circumflexacutecomb.cn by acircumflexacute;
  #sub A circumflexgravecomb.cn by uni1EA6;
  sub A circumflexnosp gravecomb by Acircumflexgrave;
  sub a circumflexgravecomb.cn by acircumflexgrave;
  #sub A circumflexhookcomb.cn by uni1EA8;
  sub A circumflexnosp hookabovecmb by Acircumflexhookabove;
  sub a circumflexhookcomb.cn by acircumflexhookabove;
  #sub A circumflextildecomb.cn by uni1EAA;
  sub A circumflexnosp tildecomb by Acircumflextilde;
  sub a circumflextildecomb.cn by acircumflextilde;
  #sub A breveacutecomb.cn by uni1EAE;
  sub A brevenosp acutecomb by Abreveacute;
  sub a breveacutecomb.cn by abreveacute;
  #sub A brevegravecomb.cn by uni1EB0;
  sub A brevenosp gravecomb by Abrevegrave;
  sub a brevegravecomb.cn by abrevegrave;
  #sub A brevehookcomb.cn by uni1EB2;
  sub A brevenosp hookabovecmb by Abrevehookabove;
  sub a brevehookcomb.cn by abrevehookabove;
  sub A brevetildecomb.cn by Abrevetilde;
  sub a brevetildecomb.cn by abrevetilde;
  sub E dotbelow by Edotbelow;
  sub e dotbelow by edotbelow;
  sub E hookabovecmb by Ehookabove;
  sub e hookabovecmb by ehookabove;
  sub E tildecomb by Etilde;
  sub e tildecomb by etilde;
  #sub E circumflexacutecomb.cn by uni1EBE;
  sub E circumflexnosp acutecomb by Ecircumflexacute;
  sub e circumflexacutecomb.cn by ecircumflexacute;
  #sub E circumflexgravecomb.cn by uni1EC0;
  sub E circumflexnosp gravecomb by Ecircumflexgrave;
  sub e circumflexgravecomb.cn by ecircumflexgrave;
  #sub E circumflexhookcomb.cn by uni1EC2;
  sub E circumflexnosp hookabovecmb by Ecircumflexhookabove;
  sub e circumflexhookcomb.cn by ecircumflexhookabove;
  #sub E circumflextildecomb.cn by uni1EC4;
  sub E circumflexnosp tildecomb by Ecircumflextilde;
  sub e circumflextildecomb.cn by ecircumflextilde;
  sub I hookabovecmb by Ihookabove;
  sub idotless hookabovecmb by ihookabove;
  sub I dotbelow by Idotbelow;
  sub i dotbelow by idotbelow;
  sub O dotbelow by Odotbelow;
  sub o dotbelow by odotbelow;
  sub O hookabovecmb by Ohookabove;
  sub o hookabovecmb by ohookabove;
  #sub O circumflexacutecomb.cn by uni1ED0;
  sub O circumflexnosp acutecomb by Ocircumflexacute;
  sub o circumflexacutecomb.cn by ocircumflexacute;
  #sub O circumflexgravecomb.cn by uni1ED2;
  sub O circumflexnosp gravecomb by Ocircumflexgrave;
  sub o circumflexgravecomb.cn by ocircumflexgrave;
  #sub O circumflexhookcomb.cn by uni1ED4;
  sub O circumflexnosp hookabovecmb by Ocircumflexhookabove;
  sub o circumflexhookcomb.cn by ocircumflexhookabove;
  #sub O circumflextildecomb.cn by uni1ED6;
  sub O circumflexnosp tildecomb by Ocircumflextilde;
  sub o circumflextildecomb.cn by ocircumflextilde;
  sub Ohorn acutecomb by Ohornacute;
  sub ohorn acutecomb by ohornacute;
  sub Ohorn gravecomb by Ohorngrave;
  sub ohorn gravecomb by ohorngrave;
  sub Ohorn hookabovecmb by Ohornhookabove;
  sub ohorn hookabovecmb by ohornhookabove;
  sub Ohorn tildecomb by Ohorntilde;
  sub ohorn tildecomb by ohorntilde;
  sub Ohorn dotbelow by Ohorndotbelow;
  sub ohorn dotbelow by ohorndotbelow;
  sub U dotbelow by Udotbelow;
  sub u dotbelow by udotbelow;
  sub U hookabovecmb by Uhookabove;
  sub u hookabovecmb by uhookabove;
  sub Uhorn acutecomb by Uhornacute;
  sub uhorn acutecomb by uhornacute;
  sub Uhorn gravecomb by Uhorngrave;
  sub uhorn gravecomb by uhorngrave;
  sub Uhorn hookabovecmb by Uhornhookabove;
  sub uhorn hookabovecmb by uhornhookabove;
  sub Uhorn tildecomb by Uhorntilde;
  sub uhorn tildecomb by uhorntilde;
  sub Uhorn dotbelow by Uhorndotbelow;
  sub uhorn dotbelow by uhorndotbelow;
  sub Y dotbelow by Ydotbelow;
  sub y dotbelow by ydotbelow;
  sub Y hookabovecmb by Yhookabove;
  sub y hookabovecmb by yhookabove;
  sub Y tildecomb by Ytilde;
  sub y tildecomb by ytilde;
  sub A caroncmb by Acaron;
  sub a caroncmb by acaron;
  sub I caroncmb by Icaron;
  sub idotless caroncmb by icaron;
  sub O caroncmb by Ocaron;
  sub o caroncmb by ocaron;
  sub U caroncmb by Ucaron;
  sub u caroncmb by ucaron;
  #sub U dieresismacroncomb.cn by uni01D5;
  sub U dieresisnosp macroncomb by Udieresismacron;
  sub u dieresismacroncomb.cn by udieresismacron;
  #sub U dieresisacutecomb.cn by uni01D7;
  sub U dieresisnosp acutecomb by Udieresisacute;
  sub u dieresisacutecomb.cn by udieresisacute;
  #sub U dieresiscaroncomb.cn by uni01D9;
  sub U dieresisnosp caroncmb by Udieresiscaron;
  sub u dieresiscaroncomb.cn by udieresiscaron;
  #sub U dieresisgravecomb.cn by uni01DB;
  sub U dieresisnosp gravecomb by Udieresisgrave;
  sub u dieresisgravecomb.cn by udieresisgrave;
  #sub A dieresismacroncomb.cn by uni01DE;
  sub A dieresisnosp macroncomb by Adieresismacron;
  sub a dieresismacroncomb.cn by adieresismacron;
  #sub A dotmacroncomb.cn by uni01E0;
  sub A dotnosp macroncomb by Adotmacron;
  sub a dotmacroncomb.cn by adotmacron;
  sub AE macroncomb by AEmacron;
  sub ae macroncomb by aemacron;
  sub G caroncmb by Gcaron;
  sub g caroncmb by gcaron;
  sub K caroncmb by Kcaron;
  sub k caroncmb by kcaron;
  sub O ogoneknosp by Oogonek;
  sub o ogoneknosp by oogonek;
  sub G acutecomb by Gacute;
  sub g acutecomb by gacute;
  sub N gravecomb by uni01F8;
  sub n gravecomb by uni01F9;
  sub A dblgravecmb by Adblgrave;
  sub a dblgravecmb by adblgrave;
  sub A breveinvnosp by Ainvertedbreve;
  sub a breveinvnosp by ainvertedbreve;
  sub E dblgravecmb by Edblgrave;
  sub e dblgravecmb by edblgrave;
  sub E breveinvnosp by Einvertedbreve;
  sub e breveinvnosp by einvertedbreve;
  sub I dblgravecmb by Idblgrave;
  sub idotless dblgravecmb by idblgrave;
  sub I breveinvnosp by Iinvertedbreve;
  sub idotless breveinvnosp by iinvertedbreve;
  sub O dblgravecmb by Odblgrave;
  sub o dblgravecmb by odblgrave;
  sub O breveinvnosp by Oinvertedbreve;
  sub o breveinvnosp by oinvertedbreve;
  sub R dblgravecmb by Rdblgrave;
  sub r dblgravecmb by rdblgrave;
  sub R breveinvnosp by Rinvertedbreve;
  sub r breveinvnosp by rinvertedbreve;
  sub U dblgravecmb by Udblgrave;
  sub u dblgravecmb by udblgrave;
  sub U breveinvnosp by Uinvertedbreve;
  sub u breveinvnosp by uinvertedbreve;
  sub H caroncmb by uni021E;
  sub h caroncmb by uni021F;
  sub A dotnosp by uni0226;
  sub a dotnosp by uni0227;
  sub E cedillanosp by uni0228;
  sub e cedillanosp by uni0229;
  #sub O dieresismacroncomb.cn by uni022A;
  sub O dieresisnosp macroncomb by uni022A;
  sub o dieresismacroncomb.cn by uni022B;
  #sub O tildemacroncomb.cn by uni022C;
  sub O tildecomb macroncomb by uni022C;
  sub o tildemacroncomb.cn by uni022D;
  sub O dotnosp by uni022E;
  sub o dotnosp by uni022F;
  #sub O dotmacroncomb.cn by uni0230;
  sub O dotnosp macroncomb by uni0230;
  sub o dotmacroncomb.cn by uni0231;
  sub Y macroncomb by uni0232;
  sub y macroncomb by uni0233;
  sub Upsilonhooksymbol acutecomb by Upsilonacutehooksymbolgreek;
  sub Upsilonhooksymbol dieresisnosp by Upsilondieresishooksymbolgreek;
  sub B dotnosp by Bdotaccent;
  sub b dotnosp by bdotaccent;
  sub B dotbelow by Bdotbelow;
  sub b dotbelow by bdotbelow;
  sub B macronsubnosp by Blinebelow;
  sub b macronsubnosp by blinebelow;
  sub D dotnosp by Ddotaccent;
  sub d dotnosp by ddotaccent;
  sub D dotbelow by Ddotbelow;
  sub d dotbelow by ddotbelow;
  sub D macronsubnosp by Dlinebelow;
  sub d macronsubnosp by dlinebelow;
  sub D commaaccent by Dcedilla;
  sub d commaaccent by dcedilla;
  sub D circumflexsubnosp by Dcircumflexbelow;
  sub d circumflexsubnosp by dcircumflexbelow;
  #sub E macrongravecomb.cn by uni1E14;
  sub E macroncomb gravecomb by Emacrongrave;
  sub e macrongravecomb.cn by emacrongrave;
  #sub E macronacutecomb.cn by uni1E16;
  sub E macroncomb acutecomb by Emacronacute;
  sub e macronacutecomb.cn by emacronacute;
  sub E circumflexsubnosp by Ecircumflexbelow;
  sub e circumflexsubnosp by ecircumflexbelow;
  sub E tildesubnosp by Etildebelow;
  sub e tildesubnosp by etildebelow;
  sub F dotnosp by Fdotaccent;
  sub f dotnosp by fdotaccent;
  sub G macroncomb by Gmacron;
  sub g macroncomb by gmacron;
  sub H dotnosp by Hdotaccent;
  sub h dotnosp by hdotaccent;
  sub H dotbelow by Hdotbelow;
  sub h dotbelow by hdotbelow;
  sub H dieresisnosp by Hdieresis;
  sub h dieresisnosp by hdieresis;
  sub H brevesubnosp by Hbrevebelow;
  sub h brevesubnosp by hbrevebelow;
  sub I tildesubnosp by Itildebelow;
  sub i tildesubnosp by itildebelow;
  #sub I dieresisacutecomb.cn by Idieresisacute;
  sub I dieresisnosp acutecomb by Idieresisacute;
  sub idotless dieresisacutecomb.cn by idieresisacute;
  sub K acutecomb by Kacute;
  sub k acutecomb by kacute;
  sub K dotbelow by Kdotbelow;
  sub k dotbelow by kdotbelow;
  sub K macronsubnosp by Klinebelow;
  sub k macronsubnosp by klinebelow;
  sub L dotbelow by Ldotbelow;
  sub l dotbelow by ldotbelow;
  sub L macronsubnosp by Llinebelow;
  sub l macronsubnosp by llinebelow;
  sub L circumflexsubnosp by Lcircumflexbelow;
  sub l circumflexsubnosp by lcircumflexbelow;
  sub M acutecomb by Macute;
  sub m acutecomb by macute;
  sub M dotnosp by Mdotaccent;
  sub m dotnosp by mdotaccent;
  sub M dotbelow by Mdotbelow;
  sub m dotbelow by mdotbelow;
  sub N dotnosp by Ndotaccent;
  sub n dotnosp by ndotaccent;
  sub N dotbelow by Ndotbelow;
  sub n dotbelow by ndotbelow;
  sub N macronsubnosp by Nlinebelow;
  sub n macronsubnosp by nlinebelow;
  sub N circumflexsubnosp by Ncircumflexbelow;
  sub n circumflexsubnosp by ncircumflexbelow;
  #sub O tildeacutecomb.cn by uni1E4C;
  sub O tildecomb acutecomb by Otildeacute;
  sub o tildeacutecomb by otildeacute;
  #sub O tildedieresiscomb.cn by uni1E4E;
  sub O tildecomb dieresisnosp by Otildedieresis;
  sub o tildedieresiscomb.cn by otildedieresis;
  #sub O macrongravecomb.cn by uni1E50;
  sub O macroncomb gravecomb by Omacrongrave;
  sub o macrongravecomb.cn by omacrongrave;
  #sub O macronacutecomb.cn by uni1E52;
  sub O macroncomb acutecomb by Omacronacute;
  sub o macronacutecomb.cn by omacronacute;
  sub P acutecomb by Pacute;
  sub p acutecomb by pacute;
  sub P dotnosp by Pdotaccent;
  sub p dotnosp by pdotaccent;
  sub R dotnosp by Rdotaccent;
  sub r dotnosp by rdotaccent;
  sub R dotbelow by Rdotbelow;
  sub r dotbelow by rdotbelow;
  sub R macronsubnosp by Rlinebelow;
  sub r macronsubnosp by rlinebelow;
  sub S dotnosp by Sdotaccent;
  sub s dotnosp by sdotaccent;
  sub S dotbelow by Sdotbelow;
  sub s dotbelow by sdotbelow;
  #sub S acutedotcomb.cn by uni1E64;
  sub S acutecomb dotnosp by Sacutedotaccent;
  sub s acutedotcomb.cn by sacutedotaccent;
  #sub S carondotcomb.cn by uni1E66;
  sub S caroncmb dotnosp by Scarondotaccent;
  sub s carondotcomb.cn by scarondotaccent;
  sub T dotnosp by Tdotaccent;
  sub t dotnosp by tdotaccent;
  sub T dotbelow by Tdotbelow;
  sub t dotbelow by tdotbelow;
  sub T macronsubnosp by Tlinebelow;
  sub t macronsubnosp by tlinebelow;
  sub T circumflexsubnosp by Tcircumflexbelow;
  sub t circumflexsubnosp by tcircumflexbelow;
  sub U dotdblsubnosp by Udieresisbelow;
  sub u dotdblsubnosp by udieresisbelow;
  sub U tildesubnosp by Utildebelow;
  sub u tildesubnosp by utildebelow;
  sub U circumflexsubnosp by Ucircumflexbelow;
  sub u circumflexsubnosp by ucircumflexbelow;
  #sub U tildeacutecomb.cn by uni1E78;
  sub U tildecomb acutecomb by Utildeacute;
  sub u tildeacutecomb by utildeacute;
  #sub U macrondieresiscomb.cn by uni1E7A;
  sub U macroncomb dieresisnosp by Umacrondieresis;
  sub u macrondieresiscomb.cn by umacrondieresis;
  sub V tildecomb by Vtilde;
  sub v tildecomb by vtilde;
  sub V dotbelow by Vdotbelow;
  sub v dotbelow by vdotbelow;
  sub W dotnosp by Wdotaccent;
  sub w dotnosp by wdotaccent;
  sub W dotbelow by Wdotbelow;
  sub w dotbelow by wdotbelow;
  sub X dotnosp by Xdotaccent;
  sub x dotnosp by xdotaccent;
  sub X dieresisnosp by Xdieresis;
  sub x dieresisnosp by xdieresis;
  sub Y dotnosp by Ydotaccent;
  sub y dotnosp by ydotaccent;
  sub Z circumflexnosp by Zcircumflex;
  sub z circumflexnosp by zcircumflex;
  sub Z dotbelow by Zdotbelow;
  sub z dotbelow by zdotbelow;
  sub Z macronsubnosp by Zlinebelow;
  sub z macronsubnosp by zlinebelow;
  sub h macronsubnosp by hlinebelow;
  sub t dieresisnosp by tdieresis;
  sub w ringnosp by wring;
  sub y ringnosp by yring;
  sub longs dotnosp by slongdotaccent;
  sub A ringsubnosp by Aringbelow;
  sub a ringsubnosp by aringbelow;
} ccmp03;

# * enclosingsquarecomb -> composite
sub A' enclosingsquarecomb' by A.squared;
sub B enclosingsquarecomb by B.squared;
sub C enclosingsquarecomb by C.squared;
sub D enclosingsquarecomb by D.squared;
sub E enclosingsquarecomb by E.squared;
sub F enclosingsquarecomb by F.squared;
sub G enclosingsquarecomb by G.squared;
sub H enclosingsquarecomb by H.squared;
sub I enclosingsquarecomb by I.squared;
sub J enclosingsquarecomb by J.squared;
sub K enclosingsquarecomb by K.squared;
sub L enclosingsquarecomb by L.squared;
sub M enclosingsquarecomb by M.squared;
sub N enclosingsquarecomb by N.squared;
sub O enclosingsquarecomb by O.squared;
sub P enclosingsquarecomb by P.squared;
sub Q enclosingsquarecomb by Q.squared;
sub R enclosingsquarecomb by R.squared;
sub S enclosingsquarecomb by S.squared;
sub T enclosingsquarecomb by T.squared;
sub U enclosingsquarecomb by U.squared;
sub V enclosingsquarecomb by V.squared;
sub W enclosingsquarecomb by W.squared;
sub X enclosingsquarecomb by X.squared;
sub Y enclosingsquarecomb by Y.squared;
sub Z enclosingsquarecomb by Z.squared;
sub zero enclosingsquarecomb by zero.squared;
sub one enclosingsquarecomb by one.squared;
sub two enclosingsquarecomb by two.squared;
sub three enclosingsquarecomb by three.squared;
sub four enclosingsquarecomb by four.squared;
sub five enclosingsquarecomb by five.squared;
sub six enclosingsquarecomb by six.squared;
sub seven enclosingsquarecomb by seven.squared;
sub eight enclosingsquarecomb by eight.squared;
sub nine enclosingsquarecomb by nine.squared;
sub zero.slash enclosingsquarecomb by zero.slash.squared;
sub one.ss01 enclosingsquarecomb by one.ss01.squared;
sub three.1 enclosingsquarecomb by three.1.squared;
sub four.ss01 enclosingsquarecomb by four.ss01.squared;
sub six.ss01 enclosingsquarecomb by six.ss01.squared;
sub nine.ss01 enclosingsquarecomb by nine.ss01.squared;
sub exclam enclosingsquarecomb by exclam.squared;
sub question enclosingsquarecomb by question.squared;
sub numbersign enclosingsquarecomb by numbersign.squared;
sub hyphen enclosingsquarecomb by hyphen.squared;
sub less enclosingsquarecomb by less.squared;
sub greater enclosingsquarecomb by greater.squared;
sub equal enclosingsquarecomb by equal.squared;
sub plus enclosingsquarecomb by plus.squared;
sub minus enclosingsquarecomb by minus.squared;
sub multiply enclosingsquarecomb by multiply.squared;
sub [ fraction slash ] enclosingsquarecomb by fraction.squared;
sub divide enclosingsquarecomb by divide.squared;
sub upArrow enclosingsquarecomb by upArrow.squared;
sub downArrow enclosingsquarecomb by downArrow.squared;
sub leftArrow enclosingsquarecomb by leftArrow.squared;
sub rightArrow enclosingsquarecomb by rightArrow.squared;
sub dngb_check enclosingsquarecomb by dngb_check.squared;
sub dngb_ballotx enclosingsquarecomb by dngb_ballotx.squared;

# * enclosingcirclecomb -> composite
sub A' enclosingcirclecomb' by A.circled;
sub B enclosingcirclecomb by B.circled;
sub C enclosingcirclecomb by C.circled;
sub D enclosingcirclecomb by D.circled;
sub E enclosingcirclecomb by E.circled;
sub F enclosingcirclecomb by F.circled;
sub G enclosingcirclecomb by G.circled;
sub H enclosingcirclecomb by H.circled;
sub I enclosingcirclecomb by I.circled;
sub J enclosingcirclecomb by J.circled;
sub K enclosingcirclecomb by K.circled;
sub L enclosingcirclecomb by L.circled;
sub M enclosingcirclecomb by M.circled;
sub N enclosingcirclecomb by N.circled;
sub O enclosingcirclecomb by O.circled;
sub P enclosingcirclecomb by P.circled;
sub Q enclosingcirclecomb by Q.circled;
sub R enclosingcirclecomb by R.circled;
sub S enclosingcirclecomb by S.circled;
sub T enclosingcirclecomb by T.circled;
sub U enclosingcirclecomb by U.circled;
sub V enclosingcirclecomb by V.circled;
sub W enclosingcirclecomb by W.circled;
sub X enclosingcirclecomb by X.circled;
sub Y enclosingcirclecomb by Y.circled;
sub Z enclosingcirclecomb by Z.circled;
sub zero enclosingcirclecomb by zero.circled;
sub one enclosingcirclecomb by one.circled;
sub two enclosingcirclecomb by two.circled;
sub three enclosingcirclecomb by three.circled;
sub four enclosingcirclecomb by four.circled;
sub five enclosingcirclecomb by five.circled;
sub six enclosingcirclecomb by six.circled;
sub seven enclosingcirclecomb by seven.circled;
sub eight enclosingcirclecomb by eight.circled;
sub nine enclosingcirclecomb by nine.circled;
sub zero.slash enclosingcirclecomb by zero.slash.circled;
sub one.ss01 enclosingcirclecomb by one.ss01.circled;
sub three.1 enclosingcirclecomb by three.1.circled;
sub four.ss01 enclosingcirclecomb by four.ss01.circled;
sub six.ss01 enclosingcirclecomb by six.ss01.circled;
sub nine.ss01 enclosingcirclecomb by nine.ss01.circled;
sub exclam enclosingcirclecomb by exclam.circled;
sub question enclosingcirclecomb by question.circled;
sub numbersign enclosingcirclecomb by numbersign.circled;
sub hyphen enclosingcirclecomb by hyphen.circled;
sub less enclosingcirclecomb by less.circled;
sub greater enclosingcirclecomb by greater.circled;
sub equal enclosingcirclecomb by equal.circled;
sub plus enclosingcirclecomb by plus.circled;
sub minus enclosingcirclecomb by minus.circled;
sub multiply enclosingcirclecomb by multiply.circled;
sub [ fraction slash ] enclosingcirclecomb by fraction.circled;
sub divide enclosingcirclecomb by divide.circled;
sub upArrow enclosingcirclecomb by upArrow.circled;
sub downArrow enclosingcirclecomb by downArrow.circled;
sub leftArrow enclosingcirclecomb by leftArrow.circled;
sub rightArrow enclosingcirclecomb by rightArrow.circled;
sub dngb_check enclosingcirclecomb by dngb_check.circled;
sub dngb_ballotx enclosingcirclecomb by dngb_ballotx.circled;