Latin_Bopomofo.txt   [plain text]


# ***************************************************************************
# *
# *  Copyright (C) 2004-2012, International Business Machines
# *  Corporation; Unicode, Inc.; and others.  All Rights Reserved.
# *
# ***************************************************************************
# File: Latin_Bopomofo.txt
# Generated from CLDR 
#
#--- forward filter, transforms ----
# currently in reverse it only goes back to Latin with numeric tones (not sure why); ok but would rather have marks.
#
:: [[:Latin:][1-5]]; # forward filter: only modifies Latin and tone digits
:: Latin-NumericPinyin(NumericPinyin-Latin); # tone marks in middle ↔ digits at end to use numeric below; this leaves the pinyin in NFC
#
#--- variables ----
#
# basic pinyin and zhuyin consonant initials (not including vowel initials):
$pCons = [b p m f d t n l g k h j q x r z c s]; # and zh ch sh, covered for this by h already in the set
$zCons = [ㄅ-ㄙ];
#
# pinyin and zhuyin minus basic consonant initials that cannot take tones by themselves
# (in some cases the exclusion is only for the pinyin, not the corresponding zhuyin: zh ch sh r z c s)
$pToneOK = [[a-z] - [b p f d t l g k h j q x r z c s]]; # and minus zh ch sh, covered for this by h already in the exclusion set
$zToneOK = [[ㄅ-ㄩ] - [ㄅ ㄆ ㄈ ㄉ ㄊ ㄌ ㄍ ㄎ ㄏ ㄐ ㄑ ㄒ]];
#
# basic consonant initials that can take tones by themselves
# (in some cases this is only for the zhuyin, not the corresponding pinyin: ㄓ ㄔ ㄕ ㄖ ㄗ ㄘ ㄙ)
# $pConsToneOK = [m n];
# $zConsToneOK = [ㄇ ㄋ ㄓ ㄔ ㄕ ㄖ ㄗ ㄘ ㄙ];
#
# basic numeric pinyin and zhuyin tones
$pTone = [1-5];
$zTone = [ˉˊˇˋ˙];
#
#--- clusters with initial consonant ----
#
bang }$pTone ↔ ㄅㄤ }$zTone;
 bang → ㄅㄤ˙;
 bang1 ← ㄅㄤ;
beng }$pTone ↔ ㄅㄥ }$zTone;
 beng → ㄅㄥ˙;
 beng1 ← ㄅㄥ;
biao }$pTone ↔ ㄅㄧㄠ }$zTone;
 biao → ㄅㄧㄠ˙;
 biao1 ← ㄅㄧㄠ;
bian }$pTone ↔ ㄅㄧㄢ }$zTone;
 bian → ㄅㄧㄢ˙;
 bian1 ← ㄅㄧㄢ;
bing }$pTone ↔ ㄅㄧㄥ }$zTone;
 bing → ㄅㄧㄥ˙;
 bing1 ← ㄅㄧㄥ;
bai }$pTone ↔ ㄅㄞ }$zTone;
 bai → ㄅㄞ˙;
 bai1 ← ㄅㄞ;
bei }$pTone ↔ ㄅㄟ }$zTone;
 bei → ㄅㄟ˙;
 bei1 ← ㄅㄟ;
bao }$pTone ↔ ㄅㄠ }$zTone;
 bao → ㄅㄠ˙;
 bao1 ← ㄅㄠ;
ban }$pTone ↔ ㄅㄢ }$zTone;
 ban → ㄅㄢ˙;
 ban1 ← ㄅㄢ;
ben }$pTone ↔ ㄅㄣ }$zTone;
 ben → ㄅㄣ˙;
 ben1 ← ㄅㄣ;
bie }$pTone ↔ ㄅㄧㄝ }$zTone;
 bie → ㄅㄧㄝ˙;
 bie1 ← ㄅㄧㄝ;
bin }$pTone ↔ ㄅㄧㄣ }$zTone;
 bin → ㄅㄧㄣ˙;
 bin1 ← ㄅㄧㄣ;
bun }$pTone ↔ ㄅㄨㄣ }$zTone;
 bun → ㄅㄨㄣ˙;
 bun1 ← ㄅㄨㄣ;
ba }$pTone ↔ ㄅㄚ }$zTone;
 ba → ㄅㄚ˙;
 ba1 ← ㄅㄚ;
bo }$pTone ↔ ㄅㄛ }$zTone;
 bo → ㄅㄛ˙;
 bo1 ← ㄅㄛ;
bi }$pTone ↔ ㄅㄧ }$zTone;
 bi → ㄅㄧ˙;
 bi1 ← ㄅㄧ;
bu }$pTone ↔ ㄅㄨ }$zTone;
 bu → ㄅㄨ˙;
 bu1 ← ㄅㄨ;
#
pang }$pTone ↔ ㄆㄤ }$zTone;
 pang → ㄆㄤ˙;
 pang1 ← ㄆㄤ;
peng }$pTone ↔ ㄆㄥ }$zTone;
 peng → ㄆㄥ˙;
 peng1 ← ㄆㄥ;
piao }$pTone ↔ ㄆㄧㄠ }$zTone;
 piao → ㄆㄧㄠ˙;
 piao1 ← ㄆㄧㄠ;
pian }$pTone ↔ ㄆㄧㄢ }$zTone;
 pian → ㄆㄧㄢ˙;
 pian1 ← ㄆㄧㄢ;
ping }$pTone ↔ ㄆㄧㄥ }$zTone;
 ping → ㄆㄧㄥ˙;
 ping1 ← ㄆㄧㄥ;
pai }$pTone ↔ ㄆㄞ }$zTone;
 pai → ㄆㄞ˙;
 pai1 ← ㄆㄞ;
pei }$pTone ↔ ㄆㄟ }$zTone;
 pei → ㄆㄟ˙;
 pei1 ← ㄆㄟ;
pao }$pTone ↔ ㄆㄠ }$zTone;
 pao → ㄆㄠ˙;
 pao1 ← ㄆㄠ;
pou }$pTone ↔ ㄆㄡ }$zTone;
 pou → ㄆㄡ˙;
 pou1 ← ㄆㄡ;
pan }$pTone ↔ ㄆㄢ }$zTone;
 pan → ㄆㄢ˙;
 pan1 ← ㄆㄢ;
pen }$pTone ↔ ㄆㄣ }$zTone;
 pen → ㄆㄣ˙;
 pen1 ← ㄆㄣ;
pie }$pTone ↔ ㄆㄧㄝ }$zTone;
 pie → ㄆㄧㄝ˙;
 pie1 ← ㄆㄧㄝ;
pin }$pTone ↔ ㄆㄧㄣ }$zTone;
 pin → ㄆㄧㄣ˙;
 pin1 ← ㄆㄧㄣ;
pa }$pTone ↔ ㄆㄚ }$zTone;
 pa → ㄆㄚ˙;
 pa1 ← ㄆㄚ;
po }$pTone ↔ ㄆㄛ }$zTone;
 po → ㄆㄛ˙;
 po1 ← ㄆㄛ;
pi }$pTone ↔ ㄆㄧ }$zTone;
 pi → ㄆㄧ˙;
 pi1 ← ㄆㄧ;
pu }$pTone ↔ ㄆㄨ }$zTone;
 pu → ㄆㄨ˙;
 pu1 ← ㄆㄨ;
#
mang }$pTone ↔ ㄇㄤ }$zTone;
 mang → ㄇㄤ˙;
 mang1 ← ㄇㄤ;
meng }$pTone ↔ ㄇㄥ }$zTone;
 meng → ㄇㄥ˙;
 meng1 ← ㄇㄥ;
miao }$pTone ↔ ㄇㄧㄠ }$zTone;
 miao → ㄇㄧㄠ˙;
 miao1 ← ㄇㄧㄠ;
mian }$pTone ↔ ㄇㄧㄢ }$zTone;
 mian → ㄇㄧㄢ˙;
 mian1 ← ㄇㄧㄢ;
ming }$pTone ↔ ㄇㄧㄥ }$zTone;
 ming → ㄇㄧㄥ˙;
 ming1 ← ㄇㄧㄥ;
mai }$pTone ↔ ㄇㄞ }$zTone;
 mai → ㄇㄞ˙;
 mai1 ← ㄇㄞ;
mei }$pTone ↔ ㄇㄟ }$zTone;
 mei → ㄇㄟ˙;
 mei1 ← ㄇㄟ;
mao }$pTone ↔ ㄇㄠ }$zTone;
 mao → ㄇㄠ˙;
 mao1 ← ㄇㄠ;
mou }$pTone ↔ ㄇㄡ }$zTone;
 mou → ㄇㄡ˙;
 mou1 ← ㄇㄡ;
man }$pTone ↔ ㄇㄢ }$zTone;
 man → ㄇㄢ˙;
 man1 ← ㄇㄢ;
men }$pTone ↔ ㄇㄣ }$zTone;
 men → ㄇㄣ˙;
 men1 ← ㄇㄣ;
mie }$pTone ↔ ㄇㄧㄝ }$zTone;
 mie → ㄇㄧㄝ˙;
 mie1 ← ㄇㄧㄝ;
miu }$pTone ↔ ㄇㄧㄡ }$zTone;
 miu → ㄇㄧㄡ˙;
 miu1 ← ㄇㄧㄡ;
min }$pTone ↔ ㄇㄧㄣ }$zTone;
 min → ㄇㄧㄣ˙;
 min1 ← ㄇㄧㄣ;
ma }$pTone ↔ ㄇㄚ }$zTone;
 ma → ㄇㄚ˙;
 ma1 ← ㄇㄚ;
mo }$pTone ↔ ㄇㄛ }$zTone;
 mo → ㄇㄛ˙;
 mo1 ← ㄇㄛ;
me }$pTone ↔ ㄇㄜ }$zTone;
 me → ㄇㄜ˙;
 me1 ← ㄇㄜ;
mi }$pTone ↔ ㄇㄧ }$zTone;
 mi → ㄇㄧ˙;
 mi1 ← ㄇㄧ;
mu }$pTone ↔ ㄇㄨ }$zTone;
 mu → ㄇㄨ˙;
 mu1 ← ㄇㄨ;
# m handled below
#
fang }$pTone ↔ ㄈㄤ }$zTone;
 fang → ㄈㄤ˙;
 fang1 ← ㄈㄤ;
feng }$pTone ↔ ㄈㄥ }$zTone;
 feng → ㄈㄥ˙;
 feng1 ← ㄈㄥ;
fiao }$pTone ↔ ㄈㄧㄠ }$zTone;
 fiao → ㄈㄧㄠ˙;
 fiao1 ← ㄈㄧㄠ;
fei }$pTone ↔ ㄈㄟ }$zTone;
 fei → ㄈㄟ˙;
 fei1 ← ㄈㄟ;
fou }$pTone ↔ ㄈㄡ }$zTone;
 fou → ㄈㄡ˙;
 fou1 ← ㄈㄡ;
fan }$pTone ↔ ㄈㄢ }$zTone;
 fan → ㄈㄢ˙;
 fan1 ← ㄈㄢ;
fen }$pTone ↔ ㄈㄣ }$zTone;
 fen → ㄈㄣ˙;
 fen1 ← ㄈㄣ;
fa }$pTone ↔ ㄈㄚ }$zTone;
 fa → ㄈㄚ˙;
 fa1 ← ㄈㄚ;
fo }$pTone ↔ ㄈㄛ }$zTone;
 fo → ㄈㄛ˙;
 fo1 ← ㄈㄛ;
fu }$pTone ↔ ㄈㄨ }$zTone;
 fu → ㄈㄨ˙;
 fu1 ← ㄈㄨ;
#
diang }$pTone ↔ ㄉㄧㄤ }$zTone; # (not in han-latin)
 diang → ㄉㄧㄤ˙;
 diang1 ← ㄉㄧㄤ;
dang }$pTone ↔ ㄉㄤ }$zTone;
 dang → ㄉㄤ˙;
 dang1 ← ㄉㄤ;
deng }$pTone ↔ ㄉㄥ }$zTone;
 deng → ㄉㄥ˙;
 deng1 ← ㄉㄥ;
diao }$pTone ↔ ㄉㄧㄠ }$zTone;
 diao → ㄉㄧㄠ˙;
 diao1 ← ㄉㄧㄠ;
dian }$pTone ↔ ㄉㄧㄢ }$zTone;
 dian → ㄉㄧㄢ˙;
 dian1 ← ㄉㄧㄢ;
ding }$pTone ↔ ㄉㄧㄥ }$zTone;
 ding → ㄉㄧㄥ˙;
 ding1 ← ㄉㄧㄥ;
duan }$pTone ↔ ㄉㄨㄢ }$zTone;
 duan → ㄉㄨㄢ˙;
 duan1 ← ㄉㄨㄢ;
dong }$pTone ↔ ㄉㄨㄥ }$zTone;
 dong → ㄉㄨㄥ˙;
 dong1 ← ㄉㄨㄥ;
dai }$pTone ↔ ㄉㄞ }$zTone;
 dai → ㄉㄞ˙;
 dai1 ← ㄉㄞ;
dei }$pTone ↔ ㄉㄟ }$zTone; # (not in han-latin)
 dei → ㄉㄟ˙;
 dei1 ← ㄉㄟ;
dao }$pTone ↔ ㄉㄠ }$zTone;
 dao → ㄉㄠ˙;
 dao1 ← ㄉㄠ;
dou }$pTone ↔ ㄉㄡ }$zTone;
 dou → ㄉㄡ˙;
 dou1 ← ㄉㄡ;
dan }$pTone ↔ ㄉㄢ }$zTone;
 dan → ㄉㄢ˙;
 dan1 ← ㄉㄢ;
den }$pTone ↔ ㄉㄣ }$zTone;
 den → ㄉㄣ˙;
 den1 ← ㄉㄣ;
dia }$pTone ↔ ㄉㄧㄚ }$zTone;
 dia → ㄉㄧㄚ˙;
 dia1 ← ㄉㄧㄚ;
die }$pTone ↔ ㄉㄧㄝ }$zTone;
 die → ㄉㄧㄝ˙;
 die1 ← ㄉㄧㄝ;
diu }$pTone ↔ ㄉㄧㄡ }$zTone;
 diu → ㄉㄧㄡ˙;
 diu1 ← ㄉㄧㄡ;
din }$pTone ↔ ㄉㄧㄣ }$zTone;
 din → ㄉㄧㄣ˙;
 din1 ← ㄉㄧㄣ;
duo }$pTone ↔ ㄉㄨㄛ }$zTone;
 duo → ㄉㄨㄛ˙;
 duo1 ← ㄉㄨㄛ;
dui }$pTone ↔ ㄉㄨㄟ }$zTone;
 dui → ㄉㄨㄟ˙;
 dui1 ← ㄉㄨㄟ;
dun }$pTone ↔ ㄉㄨㄣ }$zTone;
 dun → ㄉㄨㄣ˙;
 dun1 ← ㄉㄨㄣ;
da }$pTone ↔ ㄉㄚ }$zTone;
 da → ㄉㄚ˙;
 da1 ← ㄉㄚ;
de }$pTone ↔ ㄉㄜ }$zTone;
 de → ㄉㄜ˙;
 de1 ← ㄉㄜ;
di }$pTone ↔ ㄉㄧ }$zTone;
 di → ㄉㄧ˙;
 di1 ← ㄉㄧ;
du }$pTone ↔ ㄉㄨ }$zTone;
 du → ㄉㄨ˙;
 du1 ← ㄉㄨ;
#
tang }$pTone ↔ ㄊㄤ }$zTone;
 tang → ㄊㄤ˙;
 tang1 ← ㄊㄤ;
teng }$pTone ↔ ㄊㄥ }$zTone;
 teng → ㄊㄥ˙;
 teng1 ← ㄊㄥ;
tiao }$pTone ↔ ㄊㄧㄠ }$zTone;
 tiao → ㄊㄧㄠ˙;
 tiao1 ← ㄊㄧㄠ;
tian }$pTone ↔ ㄊㄧㄢ }$zTone;
 tian → ㄊㄧㄢ˙;
 tian1 ← ㄊㄧㄢ;
ting }$pTone ↔ ㄊㄧㄥ }$zTone;
 ting → ㄊㄧㄥ˙;
 ting1 ← ㄊㄧㄥ;
tuan }$pTone ↔ ㄊㄨㄢ }$zTone;
 tuan → ㄊㄨㄢ˙;
 tuan1 ← ㄊㄨㄢ;
tong }$pTone ↔ ㄊㄨㄥ }$zTone;
 tong → ㄊㄨㄥ˙;
 tong1 ← ㄊㄨㄥ;
tai }$pTone ↔ ㄊㄞ }$zTone;
 tai → ㄊㄞ˙;
 tai1 ← ㄊㄞ;
tao }$pTone ↔ ㄊㄠ }$zTone;
 tao → ㄊㄠ˙;
 tao1 ← ㄊㄠ;
tou }$pTone ↔ ㄊㄡ }$zTone;
 tou → ㄊㄡ˙;
 tou1 ← ㄊㄡ;
tan }$pTone ↔ ㄊㄢ }$zTone;
 tan → ㄊㄢ˙;
 tan1 ← ㄊㄢ;
tie }$pTone ↔ ㄊㄧㄝ }$zTone;
 tie → ㄊㄧㄝ˙;
 tie1 ← ㄊㄧㄝ;
tuo }$pTone ↔ ㄊㄨㄛ }$zTone;
 tuo → ㄊㄨㄛ˙;
 tuo1 ← ㄊㄨㄛ;
tui }$pTone ↔ ㄊㄨㄟ }$zTone;
 tui → ㄊㄨㄟ˙;
 tui1 ← ㄊㄨㄟ;
tun }$pTone ↔ ㄊㄨㄣ }$zTone;
 tun → ㄊㄨㄣ˙;
 tun1 ← ㄊㄨㄣ;
ta }$pTone ↔ ㄊㄚ }$zTone;
 ta → ㄊㄚ˙;
 ta1 ← ㄊㄚ;
te }$pTone ↔ ㄊㄜ }$zTone;
 te → ㄊㄜ˙;
 te1 ← ㄊㄜ;
ti }$pTone ↔ ㄊㄧ }$zTone;
 ti → ㄊㄧ˙;
 ti1 ← ㄊㄧ;
tu }$pTone ↔ ㄊㄨ }$zTone;
 tu → ㄊㄨ˙;
 tu1 ← ㄊㄨ;
#
niang }$pTone ↔ ㄋㄧㄤ }$zTone;
 niang → ㄋㄧㄤ˙;
 niang1 ← ㄋㄧㄤ;
nang }$pTone ↔ ㄋㄤ }$zTone;
 nang → ㄋㄤ˙;
 nang1 ← ㄋㄤ;
neng }$pTone ↔ ㄋㄥ }$zTone;
 neng → ㄋㄥ˙;
 neng1 ← ㄋㄥ;
niao }$pTone ↔ ㄋㄧㄠ }$zTone;
 niao → ㄋㄧㄠ˙;
 niao1 ← ㄋㄧㄠ;
nian }$pTone ↔ ㄋㄧㄢ }$zTone;
 nian → ㄋㄧㄢ˙;
 nian1 ← ㄋㄧㄢ;
ning }$pTone ↔ ㄋㄧㄥ }$zTone;
 ning → ㄋㄧㄥ˙;
 ning1 ← ㄋㄧㄥ;
nuan }$pTone ↔ ㄋㄨㄢ }$zTone;
 nuan → ㄋㄨㄢ˙;
 nuan1 ← ㄋㄨㄢ;
nong }$pTone ↔ ㄋㄨㄥ }$zTone;
 nong → ㄋㄨㄥ˙;
 nong1 ← ㄋㄨㄥ;
nai }$pTone ↔ ㄋㄞ }$zTone;
 nai → ㄋㄞ˙;
 nai1 ← ㄋㄞ;
nei }$pTone ↔ ㄋㄟ }$zTone;
 nei → ㄋㄟ˙;
 nei1 ← ㄋㄟ;
nao }$pTone ↔ ㄋㄠ }$zTone;
 nao → ㄋㄠ˙;
 nao1 ← ㄋㄠ;
nou }$pTone ↔ ㄋㄡ }$zTone;
 nou → ㄋㄡ˙;
 nou1 ← ㄋㄡ;
nan }$pTone ↔ ㄋㄢ }$zTone;
 nan → ㄋㄢ˙;
 nan1 ← ㄋㄢ;
nen }$pTone ↔ ㄋㄣ }$zTone;
 nen → ㄋㄣ˙;
 nen1 ← ㄋㄣ;
nia }$pTone ↔ ㄋㄧㄚ }$zTone; # (not in han-latin)
 nia → ㄋㄧㄚ˙;
 nia1 ← ㄋㄧㄚ;
nie }$pTone ↔ ㄋㄧㄝ }$zTone;
 nie → ㄋㄧㄝ˙;
 nie1 ← ㄋㄧㄝ;
niu }$pTone ↔ ㄋㄧㄡ }$zTone;
 niu → ㄋㄧㄡ˙;
 niu1 ← ㄋㄧㄡ;
nin }$pTone ↔ ㄋㄧㄣ }$zTone;
 nin → ㄋㄧㄣ˙;
 nin1 ← ㄋㄧㄣ;
nuo }$pTone ↔ ㄋㄨㄛ }$zTone;
 nuo → ㄋㄨㄛ˙;
 nuo1 ← ㄋㄨㄛ;
nun }$pTone ↔ ㄋㄨㄣ }$zTone;
 nun → ㄋㄨㄣ˙;
 nun1 ← ㄋㄨㄣ;
nüe }$pTone ↔ ㄋㄩㄝ }$zTone;
 nüe → ㄋㄩㄝ˙;
 nüe1 ← ㄋㄩㄝ;
nve }$pTone → ㄋㄩㄝ; # one-way, handle alternate spelling
 nve → ㄋㄩㄝ˙;
nue }$pTone → ㄋㄩㄝ; # (not in han-latin) one-way, handle wrong u
 nue → ㄋㄩㄝ˙;
na }$pTone ↔ ㄋㄚ }$zTone;
 na → ㄋㄚ˙;
 na1 ← ㄋㄚ;
ne }$pTone ↔ ㄋㄜ }$zTone;
 ne → ㄋㄜ˙;
 ne1 ← ㄋㄜ;
ni }$pTone ↔ ㄋㄧ }$zTone;
 ni → ㄋㄧ˙;
 ni1 ← ㄋㄧ;
nu }$pTone ↔ ㄋㄨ }$zTone;
 nu → ㄋㄨ˙;
 nu1 ← ㄋㄨ;
nü }$pTone ↔ ㄋㄩ }$zTone;
 nü → ㄋㄩ˙;
 nü1 ← ㄋㄩ;
nv }$pTone → ㄋㄩ; # one-way, handle alternate spelling
 nv → ㄋㄩ˙;
# n handled below
#
liang }$pTone ↔ ㄌㄧㄤ }$zTone;
 liang → ㄌㄧㄤ˙;
 liang1 ← ㄌㄧㄤ;
lang }$pTone ↔ ㄌㄤ }$zTone;
 lang → ㄌㄤ˙;
 lang1 ← ㄌㄤ;
leng }$pTone ↔ ㄌㄥ }$zTone;
 leng → ㄌㄥ˙;
 leng1 ← ㄌㄥ;
liao }$pTone ↔ ㄌㄧㄠ }$zTone;
 liao → ㄌㄧㄠ˙;
 liao1 ← ㄌㄧㄠ;
lian }$pTone ↔ ㄌㄧㄢ }$zTone;
 lian → ㄌㄧㄢ˙;
 lian1 ← ㄌㄧㄢ;
ling }$pTone ↔ ㄌㄧㄥ }$zTone;
 ling → ㄌㄧㄥ˙;
 ling1 ← ㄌㄧㄥ;
luan }$pTone ↔ ㄌㄨㄢ }$zTone;
 luan → ㄌㄨㄢ˙;
 luan1 ← ㄌㄨㄢ;
long }$pTone ↔ ㄌㄨㄥ }$zTone;
 long → ㄌㄨㄥ˙;
 long1 ← ㄌㄨㄥ;
lüan }$pTone ↔ ㄌㄩㄢ }$zTone; # (not in han-latin)
 lüan → ㄌㄩㄢ˙;
 lüan1 ← ㄌㄩㄢ;
lvan }$pTone → ㄌㄩㄢ; # (not in han-latin) one-way, handle v alternate for ü
 lvan → ㄌㄩㄢ˙;
lai }$pTone ↔ ㄌㄞ }$zTone;
 lai → ㄌㄞ˙;
 lai1 ← ㄌㄞ;
lei }$pTone ↔ ㄌㄟ }$zTone;
 lei → ㄌㄟ˙;
 lei1 ← ㄌㄟ;
lao }$pTone ↔ ㄌㄠ }$zTone;
 lao → ㄌㄠ˙;
 lao1 ← ㄌㄠ;
lou }$pTone ↔ ㄌㄡ }$zTone;
 lou → ㄌㄡ˙;
 lou1 ← ㄌㄡ;
lan }$pTone ↔ ㄌㄢ }$zTone;
 lan → ㄌㄢ˙;
 lan1 ← ㄌㄢ;
lia }$pTone ↔ ㄌㄧㄚ }$zTone;
 lia → ㄌㄧㄚ˙;
 lia1 ← ㄌㄧㄚ;
lie }$pTone ↔ ㄌㄧㄝ }$zTone;
 lie → ㄌㄧㄝ˙;
 lie1 ← ㄌㄧㄝ;
liu }$pTone ↔ ㄌㄧㄡ }$zTone;
 liu → ㄌㄧㄡ˙;
 liu1 ← ㄌㄧㄡ;
lin }$pTone ↔ ㄌㄧㄣ }$zTone;
 lin → ㄌㄧㄣ˙;
 lin1 ← ㄌㄧㄣ;
luo }$pTone ↔ ㄌㄨㄛ }$zTone;
 luo → ㄌㄨㄛ˙;
 luo1 ← ㄌㄨㄛ;
lun }$pTone ↔ ㄌㄨㄣ }$zTone;
 lun → ㄌㄨㄣ˙;
 lun1 ← ㄌㄨㄣ;
lüe }$pTone ↔ ㄌㄩㄝ }$zTone;
 lüe → ㄌㄩㄝ˙;
 lüe1 ← ㄌㄩㄝ;
lve }$pTone → ㄌㄩㄝ; # one-way, handle v alternate for ü
 lve → ㄌㄩㄝ˙;
lue }$pTone → ㄌㄩㄝ; # (not in han-latin) one-way, handle wrong u
 lue → ㄌㄩㄝ˙;
la }$pTone ↔ ㄌㄚ }$zTone;
 la → ㄌㄚ˙;
 la1 ← ㄌㄚ;
lo }$pTone ↔ ㄌㄛ }$zTone;
 lo → ㄌㄛ˙;
 lo1 ← ㄌㄛ;
le }$pTone ↔ ㄌㄜ }$zTone;
 le → ㄌㄜ˙;
 le1 ← ㄌㄜ;
li }$pTone ↔ ㄌㄧ }$zTone;
 li → ㄌㄧ˙;
 li1 ← ㄌㄧ;
lu }$pTone ↔ ㄌㄨ }$zTone;
 lu → ㄌㄨ˙;
 lu1 ← ㄌㄨ;
lü }$pTone ↔ ㄌㄩ }$zTone;
 lü → ㄌㄩ˙;
 lü1 ← ㄌㄩ;
lv }$pTone → ㄌㄩ; # one-way, handle v alternate for ü
 lv → ㄌㄩ˙;
#
guang }$pTone ↔ ㄍㄨㄤ }$zTone;
 guang → ㄍㄨㄤ˙;
 guang1 ← ㄍㄨㄤ;
gang }$pTone ↔ ㄍㄤ }$zTone;
 gang → ㄍㄤ˙;
 gang1 ← ㄍㄤ;
geng }$pTone ↔ ㄍㄥ }$zTone;
 geng → ㄍㄥ˙;
 geng1 ← ㄍㄥ;
guai }$pTone ↔ ㄍㄨㄞ }$zTone;
 guai → ㄍㄨㄞ˙;
 guai1 ← ㄍㄨㄞ;
guan }$pTone ↔ ㄍㄨㄢ }$zTone;
 guan → ㄍㄨㄢ˙;
 guan1 ← ㄍㄨㄢ;
gong }$pTone ↔ ㄍㄨㄥ }$zTone;
 gong → ㄍㄨㄥ˙;
 gong1 ← ㄍㄨㄥ;
gai }$pTone ↔ ㄍㄞ }$zTone;
 gai → ㄍㄞ˙;
 gai1 ← ㄍㄞ;
gei }$pTone ↔ ㄍㄟ }$zTone;
 gei → ㄍㄟ˙;
 gei1 ← ㄍㄟ;
gao }$pTone ↔ ㄍㄠ }$zTone;
 gao → ㄍㄠ˙;
 gao1 ← ㄍㄠ;
gou }$pTone ↔ ㄍㄡ }$zTone;
 gou → ㄍㄡ˙;
 gou1 ← ㄍㄡ;
gan }$pTone ↔ ㄍㄢ }$zTone;
 gan → ㄍㄢ˙;
 gan1 ← ㄍㄢ;
gen }$pTone ↔ ㄍㄣ }$zTone;
 gen → ㄍㄣ˙;
 gen1 ← ㄍㄣ;
gua }$pTone ↔ ㄍㄨㄚ }$zTone;
 gua → ㄍㄨㄚ˙;
 gua1 ← ㄍㄨㄚ;
guo }$pTone ↔ ㄍㄨㄛ }$zTone;
 guo → ㄍㄨㄛ˙;
 guo1 ← ㄍㄨㄛ;
gui }$pTone ↔ ㄍㄨㄟ }$zTone;
 gui → ㄍㄨㄟ˙;
 gui1 ← ㄍㄨㄟ;
gun }$pTone ↔ ㄍㄨㄣ }$zTone;
 gun → ㄍㄨㄣ˙;
 gun1 ← ㄍㄨㄣ;
ga }$pTone ↔ ㄍㄚ }$zTone;
 ga → ㄍㄚ˙;
 ga1 ← ㄍㄚ;
ge }$pTone ↔ ㄍㄜ }$zTone;
 ge → ㄍㄜ˙;
 ge1 ← ㄍㄜ;
gi }$pTone ↔ ㄍㄧ }$zTone;
 gi → ㄍㄧ˙;
 gi1 ← ㄍㄧ;
gu }$pTone ↔ ㄍㄨ }$zTone;
 gu → ㄍㄨ˙;
 gu1 ← ㄍㄨ;
#
kuang }$pTone ↔ ㄎㄨㄤ }$zTone;
 kuang → ㄎㄨㄤ˙;
 kuang1 ← ㄎㄨㄤ;
kang }$pTone ↔ ㄎㄤ }$zTone;
 kang → ㄎㄤ˙;
 kang1 ← ㄎㄤ;
keng }$pTone ↔ ㄎㄥ }$zTone;
 keng → ㄎㄥ˙;
 keng1 ← ㄎㄥ;
kuai }$pTone ↔ ㄎㄨㄞ }$zTone;
 kuai → ㄎㄨㄞ˙;
 kuai1 ← ㄎㄨㄞ;
kuan }$pTone ↔ ㄎㄨㄢ }$zTone;
 kuan → ㄎㄨㄢ˙;
 kuan1 ← ㄎㄨㄢ;
kong }$pTone ↔ ㄎㄨㄥ }$zTone;
 kong → ㄎㄨㄥ˙;
 kong1 ← ㄎㄨㄥ;
kai }$pTone ↔ ㄎㄞ }$zTone;
 kai → ㄎㄞ˙;
 kai1 ← ㄎㄞ;
kao }$pTone ↔ ㄎㄠ }$zTone;
 kao → ㄎㄠ˙;
 kao1 ← ㄎㄠ;
kou }$pTone ↔ ㄎㄡ }$zTone;
 kou → ㄎㄡ˙;
 kou1 ← ㄎㄡ;
kan }$pTone ↔ ㄎㄢ }$zTone;
 kan → ㄎㄢ˙;
 kan1 ← ㄎㄢ;
ken }$pTone ↔ ㄎㄣ }$zTone;
 ken → ㄎㄣ˙;
 ken1 ← ㄎㄣ;
kua }$pTone ↔ ㄎㄨㄚ }$zTone;
 kua → ㄎㄨㄚ˙;
 kua1 ← ㄎㄨㄚ;
kuo }$pTone ↔ ㄎㄨㄛ }$zTone;
 kuo → ㄎㄨㄛ˙;
 kuo1 ← ㄎㄨㄛ;
kui }$pTone ↔ ㄎㄨㄟ }$zTone;
 kui → ㄎㄨㄟ˙;
 kui1 ← ㄎㄨㄟ;
kun }$pTone ↔ ㄎㄨㄣ }$zTone;
 kun → ㄎㄨㄣ˙;
 kun1 ← ㄎㄨㄣ;
ka }$pTone ↔ ㄎㄚ }$zTone;
 ka → ㄎㄚ˙;
 ka1 ← ㄎㄚ;
ke }$pTone ↔ ㄎㄜ }$zTone;
 ke → ㄎㄜ˙;
 ke1 ← ㄎㄜ;
ku }$pTone ↔ ㄎㄨ }$zTone;
 ku → ㄎㄨ˙;
 ku1 ← ㄎㄨ;
#
huang }$pTone ↔ ㄏㄨㄤ }$zTone;
 huang → ㄏㄨㄤ˙;
 huang1 ← ㄏㄨㄤ;
hang }$pTone ↔ ㄏㄤ }$zTone;
 hang → ㄏㄤ˙;
 hang1 ← ㄏㄤ;
heng }$pTone ↔ ㄏㄥ }$zTone;
 heng → ㄏㄥ˙;
 heng1 ← ㄏㄥ;
huai }$pTone ↔ ㄏㄨㄞ }$zTone;
 huai → ㄏㄨㄞ˙;
 huai1 ← ㄏㄨㄞ;
huan }$pTone ↔ ㄏㄨㄢ }$zTone;
 huan → ㄏㄨㄢ˙;
 huan1 ← ㄏㄨㄢ;
hong }$pTone ↔ ㄏㄨㄥ }$zTone;
 hong → ㄏㄨㄥ˙;
 hong1 ← ㄏㄨㄥ;
hai }$pTone ↔ ㄏㄞ }$zTone;
 hai → ㄏㄞ˙;
 hai1 ← ㄏㄞ;
hei }$pTone ↔ ㄏㄟ }$zTone;
 hei → ㄏㄟ˙;
 hei1 ← ㄏㄟ;
hao }$pTone ↔ ㄏㄠ }$zTone;
 hao → ㄏㄠ˙;
 hao1 ← ㄏㄠ;
hou }$pTone ↔ ㄏㄡ }$zTone;
 hou → ㄏㄡ˙;
 hou1 ← ㄏㄡ;
han }$pTone ↔ ㄏㄢ }$zTone;
 han → ㄏㄢ˙;
 han1 ← ㄏㄢ;
hen }$pTone ↔ ㄏㄣ }$zTone;
 hen → ㄏㄣ˙;
 hen1 ← ㄏㄣ;
hua }$pTone ↔ ㄏㄨㄚ }$zTone;
 hua → ㄏㄨㄚ˙;
 hua1 ← ㄏㄨㄚ;
huo }$pTone ↔ ㄏㄨㄛ }$zTone;
 huo → ㄏㄨㄛ˙;
 huo1 ← ㄏㄨㄛ;
hui }$pTone ↔ ㄏㄨㄟ }$zTone;
 hui → ㄏㄨㄟ˙;
 hui1 ← ㄏㄨㄟ;
hun }$pTone ↔ ㄏㄨㄣ }$zTone;
 hun → ㄏㄨㄣ˙;
 hun1 ← ㄏㄨㄣ;
hm }$pTone ↔ ㄏㄇ }$zTone;
 hm → ㄏㄇ˙;
 hm1 ← ㄏㄇ;
ha }$pTone ↔ ㄏㄚ }$zTone;
 ha → ㄏㄚ˙;
 ha1 ← ㄏㄚ;
ho }$pTone ↔ ㄏㄛ }$zTone;
 ho → ㄏㄛ˙;
 ho1 ← ㄏㄛ;
he }$pTone ↔ ㄏㄜ }$zTone;
 he → ㄏㄜ˙;
 he1 ← ㄏㄜ;
hu }$pTone ↔ ㄏㄨ }$zTone;
 hu → ㄏㄨ˙;
 hu1 ← ㄏㄨ;
#
jiang }$pTone ↔ ㄐㄧㄤ }$zTone;
 jiang → ㄐㄧㄤ˙;
 jiang1 ← ㄐㄧㄤ;
jiong }$pTone ↔ ㄐㄩㄥ }$zTone;
 jiong → ㄐㄩㄥ˙;
 jiong1 ← ㄐㄩㄥ;
jiao }$pTone ↔ ㄐㄧㄠ }$zTone;
 jiao → ㄐㄧㄠ˙;
 jiao1 ← ㄐㄧㄠ;
jian }$pTone ↔ ㄐㄧㄢ }$zTone;
 jian → ㄐㄧㄢ˙;
 jian1 ← ㄐㄧㄢ;
jing }$pTone ↔ ㄐㄧㄥ }$zTone;
 jing → ㄐㄧㄥ˙;
 jing1 ← ㄐㄧㄥ;
juan }$pTone ↔ ㄐㄩㄢ }$zTone;
 juan → ㄐㄩㄢ˙;
 juan1 ← ㄐㄩㄢ;
jia }$pTone ↔ ㄐㄧㄚ }$zTone;
 jia → ㄐㄧㄚ˙;
 jia1 ← ㄐㄧㄚ;
jie }$pTone ↔ ㄐㄧㄝ }$zTone;
 jie → ㄐㄧㄝ˙;
 jie1 ← ㄐㄧㄝ;
jiu }$pTone ↔ ㄐㄧㄡ }$zTone;
 jiu → ㄐㄧㄡ˙;
 jiu1 ← ㄐㄧㄡ;
jin }$pTone ↔ ㄐㄧㄣ }$zTone;
 jin → ㄐㄧㄣ˙;
 jin1 ← ㄐㄧㄣ;
jue }$pTone ↔ ㄐㄩㄝ }$zTone;
 jue → ㄐㄩㄝ˙;
 jue1 ← ㄐㄩㄝ;
jun }$pTone ↔ ㄐㄩㄣ }$zTone;
 jun → ㄐㄩㄣ˙;
 jun1 ← ㄐㄩㄣ;
ji }$pTone ↔ ㄐㄧ }$zTone;
 ji → ㄐㄧ˙;
 ji1 ← ㄐㄧ;
ju }$pTone ↔ ㄐㄩ }$zTone;
 ju → ㄐㄩ˙;
 ju1 ← ㄐㄩ;
#
qiang }$pTone ↔ ㄑㄧㄤ }$zTone;
 qiang → ㄑㄧㄤ˙;
 qiang1 ← ㄑㄧㄤ;
qiong }$pTone ↔ ㄑㄩㄥ }$zTone;
 qiong → ㄑㄩㄥ˙;
 qiong1 ← ㄑㄩㄥ;
qiao }$pTone ↔ ㄑㄧㄠ }$zTone;
 qiao → ㄑㄧㄠ˙;
 qiao1 ← ㄑㄧㄠ;
qian }$pTone ↔ ㄑㄧㄢ }$zTone;
 qian → ㄑㄧㄢ˙;
 qian1 ← ㄑㄧㄢ;
qing }$pTone ↔ ㄑㄧㄥ }$zTone;
 qing → ㄑㄧㄥ˙;
 qing1 ← ㄑㄧㄥ;
quan }$pTone ↔ ㄑㄩㄢ }$zTone;
 quan → ㄑㄩㄢ˙;
 quan1 ← ㄑㄩㄢ;
qia }$pTone ↔ ㄑㄧㄚ }$zTone;
 qia → ㄑㄧㄚ˙;
 qia1 ← ㄑㄧㄚ;
qie }$pTone ↔ ㄑㄧㄝ }$zTone;
 qie → ㄑㄧㄝ˙;
 qie1 ← ㄑㄧㄝ;
qiu }$pTone ↔ ㄑㄧㄡ }$zTone;
 qiu → ㄑㄧㄡ˙;
 qiu1 ← ㄑㄧㄡ;
qin }$pTone ↔ ㄑㄧㄣ }$zTone;
 qin → ㄑㄧㄣ˙;
 qin1 ← ㄑㄧㄣ;
que }$pTone ↔ ㄑㄩㄝ }$zTone;
 que → ㄑㄩㄝ˙;
 que1 ← ㄑㄩㄝ;
qun }$pTone ↔ ㄑㄩㄣ }$zTone;
 qun → ㄑㄩㄣ˙;
 qun1 ← ㄑㄩㄣ;
qi }$pTone ↔ ㄑㄧ }$zTone;
 qi → ㄑㄧ˙;
 qi1 ← ㄑㄧ;
qu }$pTone ↔ ㄑㄩ }$zTone;
 qu → ㄑㄩ˙;
 qu1 ← ㄑㄩ;
#
xiang }$pTone ↔ ㄒㄧㄤ }$zTone;
 xiang → ㄒㄧㄤ˙;
 xiang1 ← ㄒㄧㄤ;
xiong }$pTone ↔ ㄒㄩㄥ }$zTone;
 xiong → ㄒㄩㄥ˙;
 xiong1 ← ㄒㄩㄥ;
xiao }$pTone ↔ ㄒㄧㄠ }$zTone;
 xiao → ㄒㄧㄠ˙;
 xiao1 ← ㄒㄧㄠ;
xian }$pTone ↔ ㄒㄧㄢ }$zTone;
 xian → ㄒㄧㄢ˙;
 xian1 ← ㄒㄧㄢ;
xing }$pTone ↔ ㄒㄧㄥ }$zTone;
 xing → ㄒㄧㄥ˙;
 xing1 ← ㄒㄧㄥ;
xuan }$pTone ↔ ㄒㄩㄢ }$zTone;
 xuan → ㄒㄩㄢ˙;
 xuan1 ← ㄒㄩㄢ;
xia }$pTone ↔ ㄒㄧㄚ }$zTone;
 xia → ㄒㄧㄚ˙;
 xia1 ← ㄒㄧㄚ;
xie }$pTone ↔ ㄒㄧㄝ }$zTone;
 xie → ㄒㄧㄝ˙;
 xie1 ← ㄒㄧㄝ;
xiu }$pTone ↔ ㄒㄧㄡ }$zTone;
 xiu → ㄒㄧㄡ˙;
 xiu1 ← ㄒㄧㄡ;
xin }$pTone ↔ ㄒㄧㄣ }$zTone;
 xin → ㄒㄧㄣ˙;
 xin1 ← ㄒㄧㄣ;
xue }$pTone ↔ ㄒㄩㄝ }$zTone;
 xue → ㄒㄩㄝ˙;
 xue1 ← ㄒㄩㄝ;
xun }$pTone ↔ ㄒㄩㄣ }$zTone;
 xun → ㄒㄩㄣ˙;
 xun1 ← ㄒㄩㄣ;
xi }$pTone ↔ ㄒㄧ }$zTone;
 xi → ㄒㄧ˙;
 xi1 ← ㄒㄧ;
xu }$pTone ↔ ㄒㄩ }$zTone;
 xu → ㄒㄩ˙;
 xu1 ← ㄒㄩ;
#
zhuang }$pTone ↔ ㄓㄨㄤ }$zTone;
 zhuang → ㄓㄨㄤ˙;
 zhuang1 ← ㄓㄨㄤ;
zhang }$pTone ↔ ㄓㄤ }$zTone;
 zhang → ㄓㄤ˙;
 zhang1 ← ㄓㄤ;
zheng }$pTone ↔ ㄓㄥ }$zTone;
 zheng → ㄓㄥ˙;
 zheng1 ← ㄓㄥ;
zhuai }$pTone ↔ ㄓㄨㄞ }$zTone;
 zhuai → ㄓㄨㄞ˙;
 zhuai1 ← ㄓㄨㄞ;
zhuan }$pTone ↔ ㄓㄨㄢ }$zTone;
 zhuan → ㄓㄨㄢ˙;
 zhuan1 ← ㄓㄨㄢ;
zhong }$pTone ↔ ㄓㄨㄥ }$zTone;
 zhong → ㄓㄨㄥ˙;
 zhong1 ← ㄓㄨㄥ;
zhai }$pTone ↔ ㄓㄞ }$zTone;
 zhai → ㄓㄞ˙;
 zhai1 ← ㄓㄞ;
zhei }$pTone ↔ ㄓㄟ }$zTone; # (not in han-latin)
 zhei → ㄓㄟ˙;
 zhei1 ← ㄓㄟ;
zhao }$pTone ↔ ㄓㄠ }$zTone;
 zhao → ㄓㄠ˙;
 zhao1 ← ㄓㄠ;
zhou }$pTone ↔ ㄓㄡ }$zTone;
 zhou → ㄓㄡ˙;
 zhou1 ← ㄓㄡ;
zhan }$pTone ↔ ㄓㄢ }$zTone;
 zhan → ㄓㄢ˙;
 zhan1 ← ㄓㄢ;
zhen }$pTone ↔ ㄓㄣ }$zTone;
 zhen → ㄓㄣ˙;
 zhen1 ← ㄓㄣ;
zhua }$pTone ↔ ㄓㄨㄚ }$zTone;
 zhua → ㄓㄨㄚ˙;
 zhua1 ← ㄓㄨㄚ;
zhuo }$pTone ↔ ㄓㄨㄛ }$zTone;
 zhuo → ㄓㄨㄛ˙;
 zhuo1 ← ㄓㄨㄛ;
zhui }$pTone ↔ ㄓㄨㄟ }$zTone;
 zhui → ㄓㄨㄟ˙;
 zhui1 ← ㄓㄨㄟ;
zhun }$pTone ↔ ㄓㄨㄣ }$zTone;
 zhun → ㄓㄨㄣ˙;
 zhun1 ← ㄓㄨㄣ;
zha }$pTone ↔ ㄓㄚ }$zTone;
 zha → ㄓㄚ˙;
 zha1 ← ㄓㄚ;
zhe }$pTone ↔ ㄓㄜ }$zTone;
 zhe → ㄓㄜ˙;
 zhe1 ← ㄓㄜ;
zhu }$pTone ↔ ㄓㄨ }$zTone;
 zhu → ㄓㄨ˙;
 zhu1 ← ㄓㄨ;
zhi }$pTone ↔ ㄓ }$zTone;
 zhi → ㄓ˙;
 zhi1 ← ㄓ;
#
chuang }$pTone ↔ ㄔㄨㄤ }$zTone;
 chuang → ㄔㄨㄤ˙;
 chuang1 ← ㄔㄨㄤ;
chang }$pTone ↔ ㄔㄤ }$zTone;
 chang → ㄔㄤ˙;
 chang1 ← ㄔㄤ;
cheng }$pTone ↔ ㄔㄥ }$zTone;
 cheng → ㄔㄥ˙;
 cheng1 ← ㄔㄥ;
chuai }$pTone ↔ ㄔㄨㄞ }$zTone;
 chuai → ㄔㄨㄞ˙;
 chuai1 ← ㄔㄨㄞ;
chuan }$pTone ↔ ㄔㄨㄢ }$zTone;
 chuan → ㄔㄨㄢ˙;
 chuan1 ← ㄔㄨㄢ;
chong }$pTone ↔ ㄔㄨㄥ }$zTone;
 chong → ㄔㄨㄥ˙;
 chong1 ← ㄔㄨㄥ;
chai }$pTone ↔ ㄔㄞ }$zTone;
 chai → ㄔㄞ˙;
 chai1 ← ㄔㄞ;
chao }$pTone ↔ ㄔㄠ }$zTone;
 chao → ㄔㄠ˙;
 chao1 ← ㄔㄠ;
chou }$pTone ↔ ㄔㄡ }$zTone;
 chou → ㄔㄡ˙;
 chou1 ← ㄔㄡ;
chan }$pTone ↔ ㄔㄢ }$zTone;
 chan → ㄔㄢ˙;
 chan1 ← ㄔㄢ;
chen }$pTone ↔ ㄔㄣ }$zTone;
 chen → ㄔㄣ˙;
 chen1 ← ㄔㄣ;
chua }$pTone ↔ ㄔㄨㄚ }$zTone;
 chua → ㄔㄨㄚ˙;
 chua1 ← ㄔㄨㄚ;
chuo }$pTone ↔ ㄔㄨㄛ }$zTone;
 chuo → ㄔㄨㄛ˙;
 chuo1 ← ㄔㄨㄛ;
chui }$pTone ↔ ㄔㄨㄟ }$zTone;
 chui → ㄔㄨㄟ˙;
 chui1 ← ㄔㄨㄟ;
chun }$pTone ↔ ㄔㄨㄣ }$zTone;
 chun → ㄔㄨㄣ˙;
 chun1 ← ㄔㄨㄣ;
cha }$pTone ↔ ㄔㄚ }$zTone;
 cha → ㄔㄚ˙;
 cha1 ← ㄔㄚ;
che }$pTone ↔ ㄔㄜ }$zTone;
 che → ㄔㄜ˙;
 che1 ← ㄔㄜ;
chu }$pTone ↔ ㄔㄨ }$zTone;
 chu → ㄔㄨ˙;
 chu1 ← ㄔㄨ;
chi }$pTone ↔ ㄔ }$zTone;
 chi → ㄔ˙;
 chi1 ← ㄔ;
#
shuang }$pTone ↔ ㄕㄨㄤ }$zTone;
 shuang → ㄕㄨㄤ˙;
 shuang1 ← ㄕㄨㄤ;
shong }$pTone ↔ ㄕㄡㄥ }$zTone; # (not in han-latin)
 shong → ㄕㄡㄥ˙;
 shong1 ← ㄕㄡㄥ;
shang }$pTone ↔ ㄕㄤ }$zTone;
 shang → ㄕㄤ˙;
 shang1 ← ㄕㄤ;
sheng }$pTone ↔ ㄕㄥ }$zTone;
 sheng → ㄕㄥ˙;
 sheng1 ← ㄕㄥ;
shuai }$pTone ↔ ㄕㄨㄞ }$zTone;
 shuai → ㄕㄨㄞ˙;
 shuai1 ← ㄕㄨㄞ;
shuan }$pTone ↔ ㄕㄨㄢ }$zTone;
 shuan → ㄕㄨㄢ˙;
 shuan1 ← ㄕㄨㄢ;
shai }$pTone ↔ ㄕㄞ }$zTone;
 shai → ㄕㄞ˙;
 shai1 ← ㄕㄞ;
shei }$pTone ↔ ㄕㄟ }$zTone; # (not in han-latin)
 shei → ㄕㄟ˙;
 shei1 ← ㄕㄟ;
shao }$pTone ↔ ㄕㄠ }$zTone;
 shao → ㄕㄠ˙;
 shao1 ← ㄕㄠ;
shou }$pTone ↔ ㄕㄡ }$zTone;
 shou → ㄕㄡ˙;
 shou1 ← ㄕㄡ;
shan }$pTone ↔ ㄕㄢ }$zTone;
 shan → ㄕㄢ˙;
 shan1 ← ㄕㄢ;
shen }$pTone ↔ ㄕㄣ }$zTone;
 shen → ㄕㄣ˙;
 shen1 ← ㄕㄣ;
shua }$pTone ↔ ㄕㄨㄚ }$zTone;
 shua → ㄕㄨㄚ˙;
 shua1 ← ㄕㄨㄚ;
shuo }$pTone ↔ ㄕㄨㄛ }$zTone;
 shuo → ㄕㄨㄛ˙;
 shuo1 ← ㄕㄨㄛ;
shui }$pTone ↔ ㄕㄨㄟ }$zTone;
 shui → ㄕㄨㄟ˙;
 shui1 ← ㄕㄨㄟ;
shun }$pTone ↔ ㄕㄨㄣ }$zTone;
 shun → ㄕㄨㄣ˙;
 shun1 ← ㄕㄨㄣ;
sha }$pTone ↔ ㄕㄚ }$zTone;
 sha → ㄕㄚ˙;
 sha1 ← ㄕㄚ;
she }$pTone ↔ ㄕㄜ }$zTone;
 she → ㄕㄜ˙;
 she1 ← ㄕㄜ;
shu }$pTone ↔ ㄕㄨ }$zTone;
 shu → ㄕㄨ˙;
 shu1 ← ㄕㄨ;
shi }$pTone ↔ ㄕ }$zTone;
 shi → ㄕ˙;
 shi1 ← ㄕ;
#
rang }$pTone ↔ ㄖㄤ }$zTone;
 rang → ㄖㄤ˙;
 rang1 ← ㄖㄤ;
reng }$pTone ↔ ㄖㄥ }$zTone;
 reng → ㄖㄥ˙;
 reng1 ← ㄖㄥ;
ruan }$pTone ↔ ㄖㄨㄢ }$zTone;
 ruan → ㄖㄨㄢ˙;
 ruan1 ← ㄖㄨㄢ;
rong }$pTone ↔ ㄖㄨㄥ }$zTone;
 rong → ㄖㄨㄥ˙;
 rong1 ← ㄖㄨㄥ;
rao }$pTone ↔ ㄖㄠ }$zTone;
 rao → ㄖㄠ˙;
 rao1 ← ㄖㄠ;
rou }$pTone ↔ ㄖㄡ }$zTone;
 rou → ㄖㄡ˙;
 rou1 ← ㄖㄡ;
ran }$pTone ↔ ㄖㄢ }$zTone;
 ran → ㄖㄢ˙;
 ran1 ← ㄖㄢ;
ren }$pTone ↔ ㄖㄣ }$zTone;
 ren → ㄖㄣ˙;
 ren1 ← ㄖㄣ;
ruo }$pTone ↔ ㄖㄨㄛ }$zTone;
 ruo → ㄖㄨㄛ˙;
 ruo1 ← ㄖㄨㄛ;
rui }$pTone ↔ ㄖㄨㄟ }$zTone;
 rui → ㄖㄨㄟ˙;
 rui1 ← ㄖㄨㄟ;
run }$pTone ↔ ㄖㄨㄣ }$zTone;
 run → ㄖㄨㄣ˙;
 run1 ← ㄖㄨㄣ;
ra }$pTone ↔ ㄖㄚ }$zTone;
 ra → ㄖㄚ˙;
 ra1 ← ㄖㄚ;
re }$pTone ↔ ㄖㄜ }$zTone;
 re → ㄖㄜ˙;
 re1 ← ㄖㄜ;
ru }$pTone ↔ ㄖㄨ }$zTone;
 ru → ㄖㄨ˙;
 ru1 ← ㄖㄨ;
ri }$pTone ↔ ㄖ }$zTone;
 ri → ㄖ˙;
 ri1 ← ㄖ;
#
zang }$pTone ↔ ㄗㄤ }$zTone;
 zang → ㄗㄤ˙;
 zang1 ← ㄗㄤ;
zeng }$pTone ↔ ㄗㄥ }$zTone;
 zeng → ㄗㄥ˙;
 zeng1 ← ㄗㄥ;
zuan }$pTone ↔ ㄗㄨㄢ }$zTone;
 zuan → ㄗㄨㄢ˙;
 zuan1 ← ㄗㄨㄢ;
zong }$pTone ↔ ㄗㄨㄥ }$zTone;
 zong → ㄗㄨㄥ˙;
 zong1 ← ㄗㄨㄥ;
zai }$pTone ↔ ㄗㄞ }$zTone;
 zai → ㄗㄞ˙;
 zai1 ← ㄗㄞ;
zei }$pTone ↔ ㄗㄟ }$zTone;
 zei → ㄗㄟ˙;
 zei1 ← ㄗㄟ;
zao }$pTone ↔ ㄗㄠ }$zTone;
 zao → ㄗㄠ˙;
 zao1 ← ㄗㄠ;
zou }$pTone ↔ ㄗㄡ }$zTone;
 zou → ㄗㄡ˙;
 zou1 ← ㄗㄡ;
zan }$pTone ↔ ㄗㄢ }$zTone;
 zan → ㄗㄢ˙;
 zan1 ← ㄗㄢ;
zen }$pTone ↔ ㄗㄣ }$zTone;
 zen → ㄗㄣ˙;
 zen1 ← ㄗㄣ;
zuo }$pTone ↔ ㄗㄨㄛ }$zTone;
 zuo → ㄗㄨㄛ˙;
 zuo1 ← ㄗㄨㄛ;
zui }$pTone ↔ ㄗㄨㄟ }$zTone;
 zui → ㄗㄨㄟ˙;
 zui1 ← ㄗㄨㄟ;
zun }$pTone ↔ ㄗㄨㄣ }$zTone;
 zun → ㄗㄨㄣ˙;
 zun1 ← ㄗㄨㄣ;
za }$pTone ↔ ㄗㄚ }$zTone;
 za → ㄗㄚ˙;
 za1 ← ㄗㄚ;
ze }$pTone ↔ ㄗㄜ }$zTone;
 ze → ㄗㄜ˙;
 ze1 ← ㄗㄜ;
zu }$pTone ↔ ㄗㄨ }$zTone;
 zu → ㄗㄨ˙;
 zu1 ← ㄗㄨ;
zi }$pTone ↔ ㄗ }$zTone;
 zi → ㄗ˙;
 zi1 ← ㄗ;
#
cang }$pTone ↔ ㄘㄤ }$zTone;
 cang → ㄘㄤ˙;
 cang1 ← ㄘㄤ;
ceng }$pTone ↔ ㄘㄥ }$zTone;
 ceng → ㄘㄥ˙;
 ceng1 ← ㄘㄥ;
cuan }$pTone ↔ ㄘㄨㄢ }$zTone;
 cuan → ㄘㄨㄢ˙;
 cuan1 ← ㄘㄨㄢ;
cong }$pTone ↔ ㄘㄨㄥ }$zTone;
 cong → ㄘㄨㄥ˙;
 cong1 ← ㄘㄨㄥ;
cai }$pTone ↔ ㄘㄞ }$zTone;
 cai → ㄘㄞ˙;
 cai1 ← ㄘㄞ;
cao }$pTone ↔ ㄘㄠ }$zTone;
 cao → ㄘㄠ˙;
 cao1 ← ㄘㄠ;
cou }$pTone ↔ ㄘㄡ }$zTone;
 cou → ㄘㄡ˙;
 cou1 ← ㄘㄡ;
can }$pTone ↔ ㄘㄢ }$zTone;
 can → ㄘㄢ˙;
 can1 ← ㄘㄢ;
cen }$pTone ↔ ㄘㄣ }$zTone;
 cen → ㄘㄣ˙;
 cen1 ← ㄘㄣ;
cuo }$pTone ↔ ㄘㄨㄛ }$zTone;
 cuo → ㄘㄨㄛ˙;
 cuo1 ← ㄘㄨㄛ;
cui }$pTone ↔ ㄘㄨㄟ }$zTone;
 cui → ㄘㄨㄟ˙;
 cui1 ← ㄘㄨㄟ;
cun }$pTone ↔ ㄘㄨㄣ }$zTone;
 cun → ㄘㄨㄣ˙;
 cun1 ← ㄘㄨㄣ;
ca }$pTone ↔ ㄘㄚ }$zTone;
 ca → ㄘㄚ˙;
 ca1 ← ㄘㄚ;
ce }$pTone ↔ ㄘㄜ }$zTone;
 ce → ㄘㄜ˙;
 ce1 ← ㄘㄜ;
cu }$pTone ↔ ㄘㄨ }$zTone;
 cu → ㄘㄨ˙;
 cu1 ← ㄘㄨ;
ci }$pTone ↔ ㄘ }$zTone;
 ci → ㄘ˙;
 ci1 ← ㄘ;
#
sang }$pTone ↔ ㄙㄤ }$zTone;
 sang → ㄙㄤ˙;
 sang1 ← ㄙㄤ;
seng }$pTone ↔ ㄙㄥ }$zTone;
 seng → ㄙㄥ˙;
 seng1 ← ㄙㄥ;
suan }$pTone ↔ ㄙㄨㄢ }$zTone;
 suan → ㄙㄨㄢ˙;
 suan1 ← ㄙㄨㄢ;
song }$pTone ↔ ㄙㄨㄥ }$zTone;
 song → ㄙㄨㄥ˙;
 song1 ← ㄙㄨㄥ;
sai }$pTone ↔ ㄙㄞ }$zTone;
 sai → ㄙㄞ˙;
 sai1 ← ㄙㄞ;
sei }$pTone ↔ ㄙㄟ }$zTone; # (not in han-latin)
 sei → ㄙㄟ˙;
 sei1 ← ㄙㄟ;
sao }$pTone ↔ ㄙㄠ }$zTone;
 sao → ㄙㄠ˙;
 sao1 ← ㄙㄠ;
sou }$pTone ↔ ㄙㄡ }$zTone;
 sou → ㄙㄡ˙;
 sou1 ← ㄙㄡ;
san }$pTone ↔ ㄙㄢ }$zTone;
 san → ㄙㄢ˙;
 san1 ← ㄙㄢ;
sen }$pTone ↔ ㄙㄣ }$zTone;
 sen → ㄙㄣ˙;
 sen1 ← ㄙㄣ;
suo }$pTone ↔ ㄙㄨㄛ }$zTone;
 suo → ㄙㄨㄛ˙;
 suo1 ← ㄙㄨㄛ;
sui }$pTone ↔ ㄙㄨㄟ }$zTone;
 sui → ㄙㄨㄟ˙;
 sui1 ← ㄙㄨㄟ;
sun }$pTone ↔ ㄙㄨㄣ }$zTone;
 sun → ㄙㄨㄣ˙;
 sun1 ← ㄙㄨㄣ;
sa }$pTone ↔ ㄙㄚ }$zTone;
 sa → ㄙㄚ˙;
 sa1 ← ㄙㄚ;
se }$pTone ↔ ㄙㄜ }$zTone;
 se → ㄙㄜ˙;
 se1 ← ㄙㄜ;
su }$pTone ↔ ㄙㄨ }$zTone;
 su → ㄙㄨ˙;
 su1 ← ㄙㄨ;
si }$pTone ↔ ㄙ }$zTone;
 si → ㄙ˙;
 si1 ← ㄙ;
#
#--- vowels and vowel compounds ----
# most exist as syllables by themselves and they are also used as finals for initial consonants
#
yuan }$pTone ↔ ㄩㄢ }$zTone;
 yuan → ㄩㄢ˙;
 yuan1 ← ㄩㄢ;
yong }$pTone ↔ ㄩㄥ }$zTone;
 yong → ㄩㄥ˙;
 yong1 ← ㄩㄥ;
yue }$pTone ↔ ㄩㄝ }$zTone;
 yue → ㄩㄝ˙;
 yue1 ← ㄩㄝ;
yun }$pTone ↔ ㄩㄣ }$zTone;
 yun → ㄩㄣ˙;
 yun1 ← ㄩㄣ;
yu }$pTone ↔ ㄩ }$zTone;
 yu → ㄩ˙;
 yu1 ← ㄩ;
# iu handled below
#
yang }$pTone ↔ ㄧㄤ }$zTone;
 yang → ㄧㄤ˙;
 yang1 ← ㄧㄤ;
ying }$pTone ↔ ㄧㄥ }$zTone;
 ying → ㄧㄥ˙;
 ying1 ← ㄧㄥ;
yai }$pTone ↔ ㄧㄞ }$zTone; # (not in han-latin)
 yai → ㄧㄞ˙;
 yai1 ← ㄧㄞ;
yao }$pTone ↔ ㄧㄠ }$zTone;
 yao → ㄧㄠ˙;
 yao1 ← ㄧㄠ;
you }$pTone ↔ ㄧㄡ }$zTone;
 you → ㄧㄡ˙;
 you1 ← ㄧㄡ;
yan }$pTone ↔ ㄧㄢ }$zTone;
 yan → ㄧㄢ˙;
 yan1 ← ㄧㄢ;
yin }$pTone ↔ ㄧㄣ }$zTone;
 yin → ㄧㄣ˙;
 yin1 ← ㄧㄣ;
ya }$pTone ↔ ㄧㄚ }$zTone;
 ya → ㄧㄚ˙;
 ya1 ← ㄧㄚ;
yo }$pTone ↔ ㄧㄛ }$zTone;
 yo → ㄧㄛ˙;
 yo1 ← ㄧㄛ;
ye }$pTone ↔ ㄧㄝ }$zTone;
 ye → ㄧㄝ˙;
 ye1 ← ㄧㄝ;
yi }$pTone ↔ ㄧ }$zTone;
 yi → ㄧ˙;
 yi1 ← ㄧ;
# i handled below
#
wong }$pTone ↔ ㄨㄨㄥ }$zTone;
 wong → ㄨㄨㄥ˙;
 wong1 ← ㄨㄨㄥ;
wang }$pTone ↔ ㄨㄤ }$zTone;
 wang → ㄨㄤ˙;
 wang1 ← ㄨㄤ;
weng }$pTone ↔ ㄨㄥ }$zTone;
 weng → ㄨㄥ˙;
 weng1 ← ㄨㄥ;
wai }$pTone ↔ ㄨㄞ }$zTone;
 wai → ㄨㄞ˙;
 wai1 ← ㄨㄞ;
wei }$pTone ↔ ㄨㄟ }$zTone;
 wei → ㄨㄟ˙;
 wei1 ← ㄨㄟ;
wan }$pTone ↔ ㄨㄢ }$zTone;
 wan → ㄨㄢ˙;
 wan1 ← ㄨㄢ;
wen }$pTone ↔ ㄨㄣ }$zTone;
 wen → ㄨㄣ˙;
 wen1 ← ㄨㄣ;
wa }$pTone ↔ ㄨㄚ }$zTone;
 wa → ㄨㄚ˙;
 wa1 ← ㄨㄚ;
wo }$pTone ↔ ㄨㄛ }$zTone;
 wo → ㄨㄛ˙;
 wo1 ← ㄨㄛ;
wu }$pTone ↔ ㄨ }$zTone;
 wu → ㄨ˙;
 wu1 ← ㄨ;
# u handled below
#
ang }$pTone ↔ ㄤ }$zTone;
 ang → ㄤ˙;
 ang1 ← ㄤ;
eng }$pTone ↔ ㄥ }$zTone;
 eng → ㄥ˙;
 eng1 ← ㄥ;
eh }$pTone ↔ ㄝ }$zTone; # (not in han-latin)
 eh → ㄝ˙;
 eh1 ← ㄝ;
ea }$pTone → ㄝ; # (not in han-latin) one-way
 ea → ㄝ˙;
ai }$pTone ↔ ㄞ }$zTone;
 ai → ㄞ˙;
 ai1 ← ㄞ;
ei }$pTone ↔ ㄟ }$zTone;
 ei → ㄟ˙;
 ei1 ← ㄟ;
ao }$pTone ↔ ㄠ }$zTone;
 ao → ㄠ˙;
 ao1 ← ㄠ;
au }$pTone → ㄠ; # (not in han-latin) one-way, handle unicode spelling 
 au → ㄠ˙;
ou }$pTone ↔ ㄡ }$zTone;
 ou → ㄡ˙;
 ou1 ← ㄡ;
an }$pTone ↔ ㄢ }$zTone;
 an → ㄢ˙;
 an1 ← ㄢ;
en }$pTone ↔ ㄣ }$zTone;
 en → ㄣ˙;
 en1 ← ㄣ;
er }$pTone ↔ ㄦ }$zTone;
 er → ㄦ˙;
 er1 ← ㄦ;
a }$pTone ↔ ㄚ }$zTone;
 a → ㄚ˙;
 a1 ← ㄚ;
o }$pTone ↔ ㄛ }$zTone;
 o → ㄛ˙;
 o1 ← ㄛ;
e }$pTone ↔ ㄜ }$zTone;
 e → ㄜ˙;
 e1 ← ㄜ;
#
# handle unicode spellings of ㄧ,ㄨ,ㄩ above
iu }$pTone → ㄩ; # (not in han-latin) one-way, handle unicode spelling
 iu → ㄩ˙;
i }$pTone → ㄧ; # (not in han-latin) one-way, handle unicode spelling
 i → ㄧ˙;
u }$pTone → ㄨ; # (not in han-latin) one-way, handle unicode spelling
 u → ㄨ˙;
#
#--- clusters with a single pinyin consonant that can apear in other clusters ----
#
m }$pTone ↔ ㄇ }$zTone;
 m → ㄇ˙;
 m1 ← ㄇ;
#
n }$pTone ↔ ㄋ }$zTone;
 n → ㄋ˙;
 n1 ← ㄋ;
#
#--- fallback mappings ----
#
# separate fallback mappings for some compound finals after consonants
# (different pinyin than the standalone mappings for these zhuyin sequences).
#
#-------
# would be nice to have these, need to work out how;
# something like the following, but need to avoid conflicts with mappings above:
# $pCons{ ia }$pTone ↔ $zCons{ ㄧㄚ }$zTone; # fallback mapping for unambiguous compound final
# $pCons{ ia → ㄧㄚ˙;
# ia1 ← $zCons{ ㄧㄚ
#
# the relevant mappings are:
# ia ↔ ㄧㄚ
# ie ↔ ㄧㄝ
# iao ↔ ㄧㄠ
# iu ↔ ㄧㄡ
# ian ↔ ㄧㄢ
# in ↔ ㄧㄣ
# iang ↔ ㄧㄤ
# ing ↔ ㄧㄥ
# ua ↔ ㄨㄚ
# uo ↔ ㄨㄛ
# uai ↔ ㄨㄞ
# ui ↔ ㄨㄟ
# uang ↔ ㄨㄤ
# ong ↔ ㄨㄥ
# iong ↔ ㄩㄥ
#-------
#
# separate fallback mappings for some initial consonants not handled above
# none of the mapped consonants handled here can have tones, so this is simple
b ↔ ㄅ;
p ↔ ㄆ;
# m ↔ ㄇ; # handled above
f ↔ ㄈ;
d ↔ ㄉ;
t ↔ ㄊ;
# n ↔ ㄋ; # handled above
l ↔ ㄌ;
g ↔ ㄍ;
k ↔ ㄎ;
h ↔ ㄏ;
j ↔ ㄐ;
q ↔ ㄑ;
x ↔ ㄒ;
zh → ㄓ; # reverse mapping to zhi handled above
ch → ㄔ; # reverse mapping to chi handled above
sh → ㄕ; # reverse mapping to shi handled above
r → ㄖ; # reverse mapping to ri handled above
z → ㄗ; # reverse mapping to zi handled above
c → ㄘ; # reverse mapping to ci handled above
s → ㄙ; # reverse mapping to si handled above
#
#--- tones (except for the ummarked cases handled above) ----
#
# tone 1: pinyin \u0304 or 1 ↔ zhuyin typically unmarked or use ˉ \u02C9
1 → ; # map to nothing
1 ← ˉ ; # transform if marked in zhuyin
# did the following with rules for each cluster, above
# 1 ← ; # map nothing in zhuyin to pinyin mark
#
# tones 2-4 (easy)
# $pToneOK{ 2 ↔ $zToneOK{ ˊ; # pinyin \u0301 or 2 ↔ zhuyin \u02CA
# $pToneOK{ 3 ↔ $zToneOK{ ˇ; # pinyin \u030C or 3 ↔ zhuyin \u02C7
# $pToneOK{ 4 ↔ $zToneOK{ ˋ; # pinyin \u0300 or 4 ↔ zhuyin \u02CB
# actually don't need context:
2 ↔ ˊ; # pinyin \u0301 or 2 ↔ zhuyin \u02CA
3 ↔ ˇ; # pinyin \u030C or 3 ↔ zhuyin \u02C7
4 ↔ ˋ; # pinyin \u0300 or 4 ↔ zhuyin \u02CB
#
# tone 5 (light): pinyin typically unmarked or use 5 ↔ zhuyin ˙ \u02D9
 ← ˙; # map to nothing
5 → ˙; # transform if marked in pinyin
# did the following with rules for each cluster above
# → ˙; # map nothing in pinyin to zhuyin mark
#
#--- reverse filter ----
#
:: ([[ㄅ-ㄩ][ˉˊˇˋ˙]]); # reverse filter: only modifies basic Bopomofo and tone marks